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.