lt-lcms 0.4.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +15 -0
  3. data/.github/workflows/.keep +0 -0
  4. data/.gitignore +5 -8
  5. data/.overcommit.yml +5 -0
  6. data/.rubocop.yml +5 -2
  7. data/.ruby-version +1 -1
  8. data/CHANGELOG.md +19 -1
  9. data/Dockerfile +17 -0
  10. data/Gemfile.lock +103 -90
  11. data/README.md +26 -0
  12. data/Steepfile +30 -0
  13. data/docker-entrypoint.sh +3 -0
  14. data/lib/lt/lcms/lesson/downloader/base.rb +2 -0
  15. data/lib/lt/lcms/lesson/downloader/gdoc.rb +4 -4
  16. data/lib/lt/lcms/lesson/downloader.rb +5 -0
  17. data/lib/lt/lcms/lesson/uploader/gdoc.rb +1 -1
  18. data/lib/lt/lcms/version.rb +1 -1
  19. data/lt-lcms.gemspec +9 -7
  20. data/rbs_collection.lock.yaml +218 -0
  21. data/rbs_collection.yaml +24 -0
  22. data/sig/lt/lcms/lesson/downloader/base.rbs +33 -0
  23. data/sig/lt/lcms/lesson/downloader/gdoc.rbs +34 -0
  24. data/sig/lt/lcms/lesson/downloader/gslide.rbs +19 -0
  25. data/sig/lt/lcms/lesson/downloader/gspreadsheet.rbs +17 -0
  26. data/sig/lt/lcms/lesson/downloader/pdf.rbs +15 -0
  27. data/sig/lt/lcms/lesson/downloader.rbs +8 -0
  28. data/sig/lt/lcms/lesson/uploader/gdoc.rbs +17 -0
  29. data/sig/lt/lcms/version.rbs +5 -0
  30. data/sig/lt/lcms.rbs +4 -0
  31. data/sig/polifill/google-api-client.rbs +5 -0
  32. data/sig/polifill/httparty.rbs +5 -0
  33. data/vendor/rbs/lt-google-api/lib/lt/google/api/auth/cli.rbs +22 -0
  34. data/vendor/rbs/lt-google-api/lib/lt/google/api/auth/credentials.rbs +28 -0
  35. data/vendor/rbs/lt-google-api/lib/lt/google/api/auth/service.rbs +36 -0
  36. data/vendor/rbs/lt-google-api/lib/lt/google/api/drive.rbs +30 -0
  37. data/vendor/rbs/lt-google-api/lib/lt/google/api/version.rbs +7 -0
  38. data/vendor/rbs/lt-google-api/lib/lt/google/api.rbs +6 -0
  39. data/vendor/rbs/lt-google-api/polifill/google-api-clients.rbs +15 -0
  40. data/vendor/rbs/lt-google-api/polifill/googleauth.rbs +31 -0
  41. data/vendor/rbs/lt-google-api/polifill/rails.rbs +5 -0
  42. metadata +66 -25
  43. data/.github/workflows/rubocop-analysis.yml +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a7d54912da56ecb5c67c7156fae127967689e0027480bebec4a2bc841c3ff75
4
- data.tar.gz: 5a4389eee37177d731093e3f1310080b5cc361d9e1abd621faf9ffa673c3c564
3
+ metadata.gz: 70d21ae84e0b9051f300e4c9595f0bad46a22ff9ec4c5683a2053aba1a10c200
4
+ data.tar.gz: 0bb19d2c3d28e4a0de61865afd41d2e44c77aaa2f97859f90b7b2ce7ba9241ef
5
5
  SHA512:
6
- metadata.gz: ffccf04d37f1ecfef94f25cf60c732aab899e1d8b160c55e526c1f040582f2de44c136980291476d2e54dea1903a6bb21dad7cefff98e0f4550cf39b96223cfa
7
- data.tar.gz: 7adb2215b0d9ab9d685d62dd2408a9c4e063490c2ed6e87ac3013c2b09f8667d3f6c2440cc42c941af34772bb792fa4c29c9a9a32c19f9c2c5930feca0d7865a
6
+ metadata.gz: 44a449fd0698fa5f4829b5800c6f7175de65945999d407807932f9293ec4afa83dcf2f5630356c2c8d09362fad8ae2c44b7e8ded39f134ebff9f57c35d7458cf
7
+ data.tar.gz: 034f7d256026c7e0e49ad29b07e514563022bc32ca9e3e51550e654e80caf661774da7cf17c8ac01ce1e2d6bedf7f97467b34af9078cb2819dbf14d16437a68d
data/.dockerignore ADDED
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # Ignore IDE specific files
11
+ .idea/
12
+
13
+ # Misc
14
+ .DS_Store
15
+ .gem_rbs_collection/
File without changes
data/.gitignore CHANGED
@@ -1,13 +1,10 @@
1
- /.bundle/
1
+ /.bundle
2
2
  /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
3
+ /_yardoc
9
4
 
10
5
  # Ignore IDE specific files
11
- .idea/
6
+ /.idea
12
7
 
8
+ # Misc
13
9
  .DS_Store
10
+ .gem_rbs_collection/
data/.overcommit.yml CHANGED
@@ -30,6 +30,11 @@ PreCommit:
30
30
  TrailingWhitespace:
31
31
  enabled: true
32
32
 
33
+ TypeCheck:
34
+ enabled: true
35
+ description: RBS check
36
+ command: [ 'steep', 'check' ]
37
+
33
38
  PostCheckout:
34
39
  ALL:
35
40
  quiet: true # Change all post-checkout hooks to only display output on failure
data/.rubocop.yml CHANGED
@@ -13,7 +13,10 @@ AllCops:
13
13
  - db/schema.rb
14
14
  - node_modules/**/*
15
15
  NewCops: enable
16
- TargetRubyVersion: 2.6
16
+ TargetRubyVersion: 2.7
17
+
18
+ Gemspec/DevelopmentDependencies:
19
+ EnforcedStyle: gemspec
17
20
 
18
21
  Layout/LineLength:
19
22
  Max: 120
@@ -31,7 +34,7 @@ Metrics/BlockLength:
31
34
  Exclude:
32
35
  - '**/*_spec.rb'
33
36
  - 'config/routes.rb'
34
- ExcludedMethods: ['guard', 'included']
37
+ AllowedMethods: ['guard', 'included']
35
38
 
36
39
  Metrics/ClassLength:
37
40
  Max: 250
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 2.7.7
data/CHANGELOG.md CHANGED
@@ -4,7 +4,25 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/learningtapestry/lcms-engine/compare/v0.4.4...HEAD)
7
+ ## [Unreleased](https://github.com/learningtapestry/lcms-engine/compare/v0.6.0...HEAD)
8
+
9
+ ## [0.6.0](https://github.com/learningtapestry/lt-lcms/compare/v0.5.0...v0.6.0) - 2023-12-23
10
+ ### Added
11
+
12
+ - Added Docker support [@paranoicsan](https://github.com/paranoicsan)
13
+ - Added RBS support [@paranoicsan](https://github.com/paranoicsan)
14
+
15
+ ### Changed
16
+
17
+ - Updated dependencies [@paranoicsan](https://github.com/paranoicsan)
18
+ - Ruby updated to 2.7.7 [@shlag3n](https://github.com/shlag3n) at the main branch, 3.x version will be at separate branch ruby-3-upgrade
19
+ - Bump lt-google-api to 0.3.0 to upgrade google api to 0.11 [@shlag3n](https://github.com/shlag3n)
20
+
21
+ ## [0.5.0](https://github.com/learningtapestry/lt-lcms/compare/v0.4.4...v0.5.0) - 2023-07-07
22
+
23
+ ### Added
24
+
25
+ - Drop Ruby < 3.2 ([#29](https://github.com/learningtapestry/lt-lcms/pull/29))
8
26
 
9
27
  ## [0.4.4](https://github.com/learningtapestry/lt-lcms/compare/v0.4.3...v0.4.4) - 2021-07-16
10
28
 
data/Dockerfile ADDED
@@ -0,0 +1,17 @@
1
+ FROM ruby:2.7.7
2
+
3
+ ENV APP_PATH /app/
4
+ ENV LANG C.UTF-8
5
+ ENV GIT_AUTHOR_NAME "Joe Doe"
6
+ ENV GIT_AUTHOR_EMAIL joe@doe.com
7
+
8
+ WORKDIR $APP_PATH
9
+
10
+ COPY . $APP_PATH
11
+
12
+ ENV BUNDLER_VERSION 2.4.22
13
+ RUN gem install bundler:"$BUNDLER_VERSION" \
14
+ && bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 \
15
+ && rm -rf /usr/local/bundle/cache/*.gem \
16
+ && find /usr/local/bundle/gems/ -name "*.c" -delete \
17
+ && find /usr/local/bundle/gems/ -name "*.o" -delete
data/Gemfile.lock CHANGED
@@ -1,50 +1,37 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lt-lcms (0.4.4)
5
- google-api-client (~> 0.38)
4
+ lt-lcms (0.6.0)
5
+ google-apis-core (~> 0.11, >= 0.11.1)
6
6
  httparty (~> 0.18)
7
- lt-google-api (~> 0.2, >= 0.2.4)
7
+ lt-google-api (~> 0.3)
8
8
  nokogiri (~> 1.10, >= 1.10.8)
9
9
  rubyzip (~> 2)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (6.1.4)
14
+ activesupport (7.0.7.2)
15
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
16
16
  i18n (>= 1.6, < 2)
17
17
  minitest (>= 5.1)
18
18
  tzinfo (~> 2.0)
19
- zeitwerk (~> 2.3)
20
- addressable (2.8.0)
21
- public_suffix (>= 2.0.2, < 5.0)
19
+ addressable (2.8.6)
20
+ public_suffix (>= 2.0.2, < 6.0)
22
21
  ast (2.4.2)
22
+ base64 (0.1.1)
23
23
  childprocess (4.1.0)
24
- concurrent-ruby (1.1.9)
24
+ concurrent-ruby (1.2.2)
25
+ csv (3.2.7)
25
26
  declarative (0.0.20)
26
- faraday (1.5.1)
27
- faraday-em_http (~> 1.0)
28
- faraday-em_synchrony (~> 1.0)
29
- faraday-excon (~> 1.1)
30
- faraday-httpclient (~> 1.0.1)
31
- faraday-net_http (~> 1.0)
32
- faraday-net_http_persistent (~> 1.1)
33
- faraday-patron (~> 1.0)
34
- multipart-post (>= 1.2, < 3)
27
+ faraday (2.7.12)
28
+ base64
29
+ faraday-net_http (>= 2.0, < 3.1)
35
30
  ruby2_keywords (>= 0.0.4)
36
- faraday-em_http (1.0.0)
37
- faraday-em_synchrony (1.0.0)
38
- faraday-excon (1.1.0)
39
- faraday-httpclient (1.0.1)
40
- faraday-net_http (1.0.1)
41
- faraday-net_http_persistent (1.2.0)
42
- faraday-patron (1.0.0)
43
- gems (1.2.0)
44
- google-api-client (0.53.0)
45
- google-apis-core (~> 0.1)
46
- google-apis-generator (~> 0.1)
47
- google-apis-core (0.4.0)
31
+ faraday-net_http (3.0.2)
32
+ ffi (1.15.5)
33
+ fileutils (1.7.1)
34
+ google-apis-core (0.11.2)
48
35
  addressable (~> 2.5, >= 2.5.1)
49
36
  googleauth (>= 0.16.2, < 2.a)
50
37
  httpclient (>= 2.8.1, < 3.a)
@@ -53,99 +40,125 @@ GEM
53
40
  retriable (>= 2.0, < 4.a)
54
41
  rexml
55
42
  webrick
56
- google-apis-discovery_v1 (0.6.0)
57
- google-apis-core (>= 0.4, < 2.a)
58
- google-apis-generator (0.4.0)
59
- activesupport (>= 5.0)
60
- gems (~> 1.2)
61
- google-apis-core (>= 0.4, < 2.a)
62
- google-apis-discovery_v1 (~> 0.5)
63
- thor (>= 0.20, < 2.a)
64
- googleauth (0.16.2)
65
- faraday (>= 0.17.3, < 2.0)
43
+ google-apis-drive_v3 (0.46.0)
44
+ google-apis-core (>= 0.11.0, < 2.a)
45
+ google-cloud-env (2.1.0)
46
+ faraday (>= 1.0, < 3.a)
47
+ googleauth (1.9.1)
48
+ faraday (>= 1.0, < 3.a)
49
+ google-cloud-env (~> 2.1)
66
50
  jwt (>= 1.4, < 3.0)
67
- memoist (~> 0.16)
68
51
  multi_json (~> 1.11)
69
52
  os (>= 0.9, < 2.0)
70
- signet (~> 0.14)
71
- httparty (0.18.1)
72
- mime-types (~> 3.0)
53
+ signet (>= 0.16, < 2.a)
54
+ httparty (0.21.0)
55
+ mini_mime (>= 1.0.0)
73
56
  multi_xml (>= 0.5.2)
74
57
  httpclient (2.8.3)
75
- i18n (1.8.10)
58
+ i18n (1.14.1)
76
59
  concurrent-ruby (~> 1.0)
77
60
  iniparse (1.5.0)
78
- jwt (2.2.3)
79
- lt-google-api (0.2.4)
80
- google-api-client (~> 0.46)
81
- googleauth (~> 0.14)
82
- memoist (0.16.2)
83
- mime-types (3.3.1)
84
- mime-types-data (~> 3.2015)
85
- mime-types-data (3.2021.0704)
86
- mini_mime (1.1.0)
87
- minitest (5.14.4)
61
+ json (2.6.3)
62
+ jwt (2.7.1)
63
+ language_server-protocol (3.17.0.3)
64
+ listen (3.8.0)
65
+ rb-fsevent (~> 0.10, >= 0.10.3)
66
+ rb-inotify (~> 0.9, >= 0.9.10)
67
+ logger (1.5.3)
68
+ lt-google-api (0.3.0)
69
+ google-apis-drive_v3 (~> 0.46)
70
+ googleauth (~> 1.9)
71
+ mini_mime (1.1.5)
72
+ minitest (5.19.0)
88
73
  multi_json (1.15.0)
89
74
  multi_xml (0.6.0)
90
- multipart-post (2.1.1)
91
- nokogiri (1.11.7-x86_64-darwin)
75
+ nokogiri (1.15.4-aarch64-linux)
92
76
  racc (~> 1.4)
93
- os (1.1.1)
94
- overcommit (0.58.0)
77
+ nokogiri (1.15.4-x86_64-linux)
78
+ racc (~> 1.4)
79
+ os (1.1.4)
80
+ overcommit (0.60.0)
95
81
  childprocess (>= 0.6.3, < 5)
96
82
  iniparse (~> 1.4)
97
83
  rexml (~> 3.2)
98
- parallel (1.20.1)
99
- parser (3.0.1.1)
84
+ parallel (1.23.0)
85
+ parser (3.2.2.3)
100
86
  ast (~> 2.4.1)
101
- public_suffix (4.0.6)
102
- racc (1.5.2)
103
- rainbow (3.0.0)
104
- rake (13.0.3)
105
- regexp_parser (2.1.1)
106
- representable (3.1.1)
87
+ racc
88
+ public_suffix (5.0.4)
89
+ racc (1.7.1)
90
+ rainbow (3.1.1)
91
+ rake (13.0.6)
92
+ rb-fsevent (0.11.2)
93
+ rb-inotify (0.10.1)
94
+ ffi (~> 1.0)
95
+ rbs (3.1.3)
96
+ regexp_parser (2.8.1)
97
+ representable (3.2.0)
107
98
  declarative (< 0.1.0)
108
99
  trailblazer-option (>= 0.1.1, < 0.2.0)
109
100
  uber (< 0.2.0)
110
101
  retriable (3.1.2)
111
- rexml (3.2.5)
112
- rubocop (0.93.1)
102
+ rexml (3.2.6)
103
+ rubocop (1.56.2)
104
+ base64 (~> 0.1.1)
105
+ json (~> 2.3)
106
+ language_server-protocol (>= 3.17.0)
113
107
  parallel (~> 1.10)
114
- parser (>= 2.7.1.5)
108
+ parser (>= 3.2.2.3)
115
109
  rainbow (>= 2.2.2, < 4.0)
116
- regexp_parser (>= 1.8)
117
- rexml
118
- rubocop-ast (>= 0.6.0)
110
+ regexp_parser (>= 1.8, < 3.0)
111
+ rexml (>= 3.2.5, < 4.0)
112
+ rubocop-ast (>= 1.28.1, < 2.0)
119
113
  ruby-progressbar (~> 1.7)
120
- unicode-display_width (>= 1.4.0, < 2.0)
121
- rubocop-ast (1.7.0)
122
- parser (>= 3.0.1.1)
123
- ruby-progressbar (1.11.0)
114
+ unicode-display_width (>= 2.4.0, < 3.0)
115
+ rubocop-ast (1.29.0)
116
+ parser (>= 3.2.1.0)
117
+ ruby-progressbar (1.13.0)
124
118
  ruby2_keywords (0.0.5)
125
119
  rubyzip (2.3.2)
126
- signet (0.15.0)
127
- addressable (~> 2.3)
128
- faraday (>= 0.17.3, < 2.0)
120
+ securerandom (0.2.2)
121
+ signet (0.18.0)
122
+ addressable (~> 2.8)
123
+ faraday (>= 0.17.5, < 3.a)
129
124
  jwt (>= 1.5, < 3.0)
130
125
  multi_json (~> 1.10)
131
- thor (1.1.0)
132
- trailblazer-option (0.1.1)
133
- tzinfo (2.0.4)
126
+ steep (1.5.3)
127
+ activesupport (>= 5.1)
128
+ concurrent-ruby (>= 1.1.10)
129
+ csv (>= 3.0.9)
130
+ fileutils (>= 1.1.0)
131
+ json (>= 2.1.0)
132
+ language_server-protocol (>= 3.15, < 4.0)
133
+ listen (~> 3.0)
134
+ logger (>= 1.3.0)
135
+ parser (>= 3.1)
136
+ rainbow (>= 2.2.2, < 4.0)
137
+ rbs (>= 3.1.0)
138
+ securerandom (>= 0.1)
139
+ strscan (>= 1.0.0)
140
+ terminal-table (>= 2, < 4)
141
+ strscan (3.0.6)
142
+ terminal-table (3.0.2)
143
+ unicode-display_width (>= 1.1.1, < 3)
144
+ trailblazer-option (0.1.2)
145
+ tzinfo (2.0.6)
134
146
  concurrent-ruby (~> 1.0)
135
147
  uber (0.1.0)
136
- unicode-display_width (1.7.0)
137
- webrick (1.7.0)
138
- zeitwerk (2.4.2)
148
+ unicode-display_width (2.4.2)
149
+ webrick (1.8.1)
139
150
 
140
151
  PLATFORMS
141
- ruby
152
+ aarch64-linux
153
+ x86_64-linux
142
154
 
143
155
  DEPENDENCIES
144
- bundler (~> 1.16)
156
+ bundler (~> 2.4)
145
157
  lt-lcms!
146
- overcommit (~> 0.57)
158
+ overcommit (~> 0.60)
147
159
  rake (~> 13.0)
148
- rubocop (~> 0.93.1)
160
+ rubocop (~> 1.54)
161
+ steep (~> 1.5.3)
149
162
 
150
163
  BUNDLED WITH
151
- 1.17.3
164
+ 2.4.22
data/README.md CHANGED
@@ -34,6 +34,32 @@ After checking out the repo, run `bin/setup` to install dependencies. You can al
34
34
 
35
35
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
36
36
 
37
+ ### Docker
38
+
39
+ ```shell
40
+ docker buildx build --platform linux/arm64/v8,linux/amd64 -t learningtapestry/lt-lcms --push .
41
+ ```
42
+
43
+ ### Type checking
44
+
45
+ Install existing collections:
46
+
47
+ ```shell
48
+ rbs collection install
49
+ ```
50
+
51
+ Validate installation
52
+
53
+ ```shell
54
+ rbs validate
55
+ ```
56
+
57
+ Check types
58
+
59
+ ```shell
60
+ steep check
61
+ ```
62
+
37
63
  ## Contributing
38
64
 
39
65
  Bug reports and pull requests are welcome on GitHub at https://github.com/learningtapestry/lt-lcms.
data/Steepfile ADDED
@@ -0,0 +1,30 @@
1
+ # D = Steep::Diagnostic
2
+ #
3
+ target :lib do
4
+ signature "sig", "vendor/rbs"
5
+
6
+ check "lib" # Directory name
7
+ # # check "Gemfile" # File name
8
+ # check "app/models/**/*.rb" # Glob
9
+ # # ignore "lib/templates/*.rb"
10
+ #
11
+ # # library "pathname" # Standard libraries
12
+ # # library "strong_json" # Gems
13
+ library "cgi", "rbs", "tempfile"
14
+ #
15
+ # # configure_code_diagnostics(D::Ruby.default) # `default` diagnostics setting (applies by default)
16
+ # # configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
17
+ # # configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
18
+ # # configure_code_diagnostics(D::Ruby.silent) # `silent` diagnostics setting
19
+ # # configure_code_diagnostics do |hash| # You can setup everything yourself
20
+ # # hash[D::Ruby::NoMethod] = :information
21
+ # # end
22
+ end
23
+
24
+ # target :test do
25
+ # signature "sig", "sig-private"
26
+ #
27
+ # check "test"
28
+ #
29
+ # # library "pathname" # Standard libraries
30
+ # end
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+ set -e
3
+ exec "$@"
@@ -36,6 +36,8 @@ module Lt
36
36
  self
37
37
  rescue ::Google::Apis::RateLimitError
38
38
  raise unless options[:import_retry]
39
+
40
+ retry_attempt = retry_attempt.to_i
39
41
  raise if retry_attempt >= MAX_RETRY_COUNT
40
42
 
41
43
  sleep RETRY_DELAYES[retry_attempt] * rand(1.0..5.0)
@@ -43,15 +43,15 @@ module Lt
43
43
  return html unless (match = html.scan(GOOGLE_DRAWING_RE))
44
44
 
45
45
  bearer = @credentials.fetch_access_token!['access_token']
46
- headers = { 'Authorization' => "Bearer #{bearer}" }
47
46
 
48
47
  match.to_a.uniq.each do |url|
49
48
  upd_url = updated_drawing_url_for(url)
50
- response = HTTParty.get CGI.unescapeHTML(upd_url), headers: headers
49
+ response = HTTParty.get CGI.unescapeHTML(upd_url), headers: { 'Authorization' => "Bearer #{bearer}" }
51
50
 
52
51
  next unless response.code == 200
53
52
 
54
- new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{upd_url}"
53
+ new_src =
54
+ "data:#{response.content_type};base64, #{Base64.encode64(response.to_s)}\" drawing_url=\"#{upd_url}"
55
55
  html = html.gsub(url, new_src)
56
56
  end
57
57
 
@@ -64,7 +64,7 @@ module Lt
64
64
 
65
65
  dpi_ratio = options[:dpi].to_f / BASE_DPI
66
66
  uri = URI.parse(url)
67
- query = CGI.parse(uri.query).transform_values(&:first)
67
+ query = CGI.parse(uri.query.to_s).transform_values(&:first)
68
68
  query['w'] = (query['w'].to_i * dpi_ratio).round.to_s
69
69
  query['h'] = (query['h'].to_i * dpi_ratio).round.to_s
70
70
  URI::HTTPS.build(host: uri.host, path: uri.path, query: query.to_query).to_s
@@ -10,3 +10,8 @@ module Lt
10
10
  end
11
11
 
12
12
  require 'lt/lcms/lesson/downloader/base'
13
+ require 'lt/lcms/lesson/downloader/gdoc'
14
+ require 'lt/lcms/lesson/downloader/gslide'
15
+ require 'lt/lcms/lesson/downloader/gspreadsheet'
16
+ require 'lt/lcms/lesson/downloader/pdf'
17
+ require 'lt/lcms/lesson/uploader/gdoc'
@@ -14,7 +14,7 @@ module Lt
14
14
  name: name,
15
15
  mime_type: Lt::Google::Api::Drive::MIME_FILE
16
16
  }
17
- file_metadata[:parents] = [parent_folder_id] if parent_folder_id.present?
17
+ file_metadata[:parents] = Array.wrap(parent_folder_id) unless parent_folder_id.nil?
18
18
  file = service.create_file(
19
19
  file_metadata,
20
20
  fields: 'id',
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lt
4
4
  module Lcms
5
- VERSION = '0.4.4'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
data/lt-lcms.gemspec CHANGED
@@ -15,15 +15,16 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
15
15
  spec.description = ''
16
16
  spec.license = 'Apache-2.0'
17
17
 
18
- spec.required_ruby_version = '>= 2.6'
18
+ spec.required_ruby_version = '>= 2.7'
19
19
 
20
20
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
21
21
  # to allow pushing to a single host or delete this section to allow pushing to any host.
22
22
  if spec.respond_to?(:metadata)
23
23
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
24
+ spec.metadata['rubygems_mfa_required'] = 'true'
24
25
  else
25
26
  raise 'RubyGems 2.0 or newer is required to protect against ' \
26
- 'public gem pushes.'
27
+ 'public gem pushes.'
27
28
  end
28
29
 
29
30
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -33,14 +34,15 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
33
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
35
  spec.require_paths = ['lib']
35
36
 
36
- spec.add_dependency 'google-api-client', '~> 0.38'
37
+ spec.add_dependency 'google-apis-core', '~> 0.11', '>= 0.11.1'
37
38
  spec.add_dependency 'httparty', '~> 0.18'
38
- spec.add_dependency 'lt-google-api', '~> 0.2', '>= 0.2.4'
39
+ spec.add_dependency 'lt-google-api', '~> 0.3'
39
40
  spec.add_dependency 'nokogiri', '~> 1.10', '>= 1.10.8'
40
41
  spec.add_dependency 'rubyzip', '~> 2'
41
42
 
42
- spec.add_development_dependency 'bundler', '~> 1.16'
43
- spec.add_development_dependency 'overcommit', '~> 0.57'
43
+ spec.add_development_dependency 'bundler', '~> 2.4'
44
+ spec.add_development_dependency 'overcommit', '~> 0.60'
44
45
  spec.add_development_dependency 'rake', '~> 13.0'
45
- spec.add_development_dependency 'rubocop', '~> 0.93.1'
46
+ spec.add_development_dependency 'rubocop', '~> 1.54'
47
+ spec.add_development_dependency 'steep', '~> 1.5.3'
46
48
  end