diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index c65a368..1e5da3e 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -69,7 +69,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v3.2.0 + uses: docker/setup-buildx-action@v3.3.0 with: buildkitd-flags: --debug diff --git a/.gitignore b/.gitignore index d558223..26b455d 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,5 @@ build-iPhoneSimulator/ .DS_Store +# VS code +.vscode diff --git a/.rubocop.yml b/.rubocop.yml index 0432ca9..453a8af 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,5 @@ AllCops: - TargetRubyVersion: 3.2 + TargetRubyVersion: 3.3 NewCops: enable Exclude: - tmp/**/* diff --git a/.ruby-version b/.ruby-version index 944880f..15a2799 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.0 +3.3.0 diff --git a/Dockerfile b/Dockerfile index cf86032..767df81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG RUBY_ENV -FROM ruby:3.2-alpine AS builder +FROM ruby:3.3-alpine AS builder LABEL maintainer=engineering@kodeco.com ARG APP_ROOT=/app/robles @@ -45,7 +45,7 @@ RUN rm -rf /usr/local/bundle/cache/* ############################## # PACKAGE STAGE # ############################## -FROM ruby:3.2-alpine +FROM ruby:3.3-alpine LABEL maintainer=engineering@kodeco.com LABEL com.github.actions.name="robles" LABEL com.github.actions.author="Kodeco " diff --git a/Gemfile.lock b/Gemfile.lock index 6775ad0..df9a4aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,17 +30,17 @@ GEM public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.3.0) - aws-partitions (1.896.0) - aws-sdk-core (3.191.3) + aws-partitions (1.916.0) + aws-sdk-core (3.192.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.77.0) + aws-sdk-kms (1.79.0) aws-sdk-core (~> 3, >= 3.191.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.143.0) - aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-s3 (1.147.0) + aws-sdk-core (~> 3, >= 3.192.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) @@ -48,7 +48,7 @@ GEM backport (1.2.0) base64 (0.2.0) benchmark (0.3.0) - bigdecimal (3.1.6) + bigdecimal (3.1.7) cli-ui (2.2.3) coderay (1.1.3) commonmarker (0.23.10) @@ -66,7 +66,7 @@ GEM faraday-net_http (>= 2.0, < 3.2) faraday-net_http (3.1.0) net-http - faraday-retry (2.2.0) + faraday-retry (2.2.1) faraday (~> 2.0) ferrum (0.15) addressable (~> 2.5) @@ -99,7 +99,7 @@ GEM concurrent-ruby (~> 1.0) jaro_winkler (1.5.6) jmespath (1.6.2) - json (2.7.1) + json (2.7.2) kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) @@ -109,10 +109,10 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) lumberjack (1.2.10) - method_source (1.0.0) + method_source (1.1.0) mini_magick (4.12.0) - mini_portile2 (2.8.5) - minitest (5.22.2) + mini_portile2 (2.8.6) + minitest (5.22.3) multi_json (1.15.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) @@ -120,7 +120,7 @@ GEM nenv (0.3.0) net-http (0.4.1) uri - nokogiri (1.16.2) + nokogiri (1.16.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) notiffany (0.1.3) @@ -137,11 +137,11 @@ GEM pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) - public_suffix (5.0.4) + public_suffix (5.0.5) racc (1.7.3) - rack (3.0.9.1) - rack-livereload (0.5.1) - rack + rack (3.0.10) + rack-livereload (0.6.0) + rack (~> 3.0.8) rack-protection (4.0.0) base64 (>= 0.1.0) rack (>= 3.0.0, < 4) @@ -153,7 +153,7 @@ GEM rack (>= 3) webrick (~> 1.8) rainbow (3.1.1) - rake (13.1.0) + rake (13.2.1) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) @@ -165,7 +165,7 @@ GEM reverse_markdown (2.1.1) nokogiri rexml (3.2.6) - rubocop (1.62.1) + rubocop (1.63.2) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) diff --git a/README.md b/README.md index d651aff..8a7f151 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ > the mechanical precursor to the electronic book. In 1949, Ruiz was awarded Spanish patent 190,698 > for the "Mechanical Encyclopedia". -__robles__ is a tool that can build raywenderlich.com books and video courses from their git repositories,\ +__robles__ is a tool that can build Kodeco books and video courses from their git repositories,\ and publish them to [`alexandria`](https://github.com/razeware/alexandria) and [`betamax`](https://github.com/razeware/betamax) respectively.. diff --git a/action.yaml b/action.yaml index d552c16..0266c7e 100644 --- a/action.yaml +++ b/action.yaml @@ -1,6 +1,6 @@ name: 'robles' author: 'engineering@razeware.com' -description: 'raywenderlich.com Book Processing' +description: 'Kodeco Book Processing' inputs: operation: description: 'What task to perform lint|publish' diff --git a/app/lib/linting/content_module_linter.rb b/app/lib/linting/content_module_linter.rb index 6f14a67..af6e571 100644 --- a/app/lib/linting/content_module_linter.rb +++ b/app/lib/linting/content_module_linter.rb @@ -21,7 +21,7 @@ def lint(options: {}) output end - def lint_with_ui(options:, show_ui: true) # rubocop:disable Metrics/AbcSize + def lint_with_ui(options:, show_ui: true) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength with_spinner(title: 'Checking {{bold:module.yaml}} exists', show: show_ui) do check_module_file_exists end diff --git a/app/lib/linting/image/segment.rb b/app/lib/linting/image/segment.rb index eb21016..26409a9 100644 --- a/app/lib/linting/image/segment.rb +++ b/app/lib/linting/image/segment.rb @@ -24,8 +24,6 @@ def markdown_file object.script_file when 'text' object.markdown_file - else - nil end end diff --git a/app/lib/snapshotter/content_module_slides.rb b/app/lib/snapshotter/content_module_slides.rb index 3eead9d..fded556 100644 --- a/app/lib/snapshotter/content_module_slides.rb +++ b/app/lib/snapshotter/content_module_slides.rb @@ -9,6 +9,7 @@ def generate next unless segment.is_a?(Video) browser.goto("#{app_base}/slides/#{lesson.slug}/#{segment.slug}") + browser.set_viewport(width: 1920, height: 1080) browser.screenshot(path: "#{out_dir}/#{lesson.ref}-#{segment.slug}.png", selector: '#slide-to-snapshot') end end diff --git a/app/lib/snapshotter/video_course_slides.rb b/app/lib/snapshotter/video_course_slides.rb index 0227f68..4a55db5 100644 --- a/app/lib/snapshotter/video_course_slides.rb +++ b/app/lib/snapshotter/video_course_slides.rb @@ -8,6 +8,7 @@ def generate next unless episode.is_a?(Video) browser.goto("#{app_base}/slides/#{episode.slug}") + browser.set_viewport(width: 1920, height: 1080) browser.screenshot(path: "#{out_dir}/#{episode.slug}.png", selector: '#slide-to-snapshot') end end diff --git a/app/models/lessons_validator.rb b/app/models/lessons_validator.rb index cbeb196..e95abaf 100644 --- a/app/models/lessons_validator.rb +++ b/app/models/lessons_validator.rb @@ -30,7 +30,7 @@ def check_unique_title(record, attribute, value) return unless value.is_a?(Array) title_counts = Hash.new(0) - value.each { |lesson| title_counts[lesson.title] += 1 } + value.each { |lesson| title_counts[lesson.title] += 1 } non_unique_titles = title_counts.select { |_, count| count > 1 }.keys non_unique_titles.each { |title| record.errors.add(attribute, "=> Title '#{title}' is not unique") } diff --git a/app/server/views/pablo/instructions.html.erb b/app/server/views/pablo/instructions.html.erb index 0cf54d0..d4b2e99 100644 --- a/app/server/views/pablo/instructions.html.erb +++ b/app/server/views/pablo/instructions.html.erb @@ -56,7 +56,7 @@

Usage

- Feel free to use these images elsewhere (in conference talks etc). Attribution is not required, but appreciated (to raywenderlich.com). Please don't use them in a scenario that paints raywenderlich.com in a negative light. + Feel free to use these images elsewhere (in conference talks etc). Attribution is not required, but appreciated (to Kodeco Inc.). Please don't use them in a scenario that paints Kodeco Inc. in a negative light.

diff --git a/app/server/views/pablo/license.html.erb b/app/server/views/pablo/license.html.erb index ef640b4..63ce16a 100644 --- a/app/server/views/pablo/license.html.erb +++ b/app/server/views/pablo/license.html.erb @@ -6,8 +6,8 @@
The copyright for all images on this site is owned by Razeware LLC. -
Images may be used in raywenderlich.com tutorials, including video tutorials, written tutorials, books, and advertising materials. -
raywenderlich.com team members may use, alter, and modify the images for use within raywenderlich.com tutorials. +
Images may be used in Kodeco tutorials, including video tutorials, written tutorials, books, and advertising materials. +
Kodeco team members may use, alter, and modify the images for use within Kodeco tutorials.
They may also use the images in any slides or other materials for conference talks.
No other use is permitted without permission.