lt-lcms 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +78 -0
- data/.github/workflows/rubocop-analysis.yml +41 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +6 -5
- data/.ruby-version +1 -1
- data/CHANGELOG.md +41 -0
- data/Gemfile +0 -3
- data/Gemfile.lock +107 -0
- data/README.md +4 -0
- data/lib/lt/lcms/lesson/downloader/base.rb +5 -3
- data/lib/lt/lcms/lesson/downloader/gdoc.rb +38 -5
- data/lib/lt/lcms/lesson/downloader/gslide.rb +31 -0
- data/lib/lt/lcms/lesson/downloader/pdf.rb +1 -1
- data/lib/lt/lcms/lesson/uploader/gdoc.rb +2 -1
- data/lib/lt/lcms/version.rb +1 -1
- data/lt-lcms.gemspec +10 -9
- metadata +45 -49
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0457fdeb3cc39fc8c06e638d92632c67620466d737bb8985dea9f209bb382c67
|
|
4
|
+
data.tar.gz: b6d8fcca9427740ba2b5a5a08a057e7d4f547ad40c281ee3ae7f3e0eb9f84c02
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dfe6be47de5df9ce8c38b19901a6a80662eb6fcf9da1ed725d0abc148e54ea16072e2839058985e8decbe2f4899b99f5360ecc239fd3d2cf219337b9581371ce
|
|
7
|
+
data.tar.gz: d5bafdcdc0ea552af35f2a4dc9821defb963386aa62ff89f874ef247c7603490a76fb08af5f7ab5803f7fa49b9feea4a31c604a2132ab089ecf613b60f5f7cae
|
data/.codeclimate.yml
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
version: "2"
|
|
2
|
+
checks:
|
|
3
|
+
argument-count:
|
|
4
|
+
enabled: true
|
|
5
|
+
config:
|
|
6
|
+
threshold: 5
|
|
7
|
+
complex-logic:
|
|
8
|
+
enabled: true
|
|
9
|
+
config:
|
|
10
|
+
threshold: 4
|
|
11
|
+
file-lines:
|
|
12
|
+
enabled: true
|
|
13
|
+
config:
|
|
14
|
+
threshold: 1000
|
|
15
|
+
method-complexity:
|
|
16
|
+
enabled: true
|
|
17
|
+
config:
|
|
18
|
+
threshold: 20
|
|
19
|
+
method-count:
|
|
20
|
+
enabled: true
|
|
21
|
+
config:
|
|
22
|
+
threshold: 45
|
|
23
|
+
method-lines:
|
|
24
|
+
enabled: false
|
|
25
|
+
nested-control-flow:
|
|
26
|
+
enabled: true
|
|
27
|
+
config:
|
|
28
|
+
threshold: 4
|
|
29
|
+
return-statements:
|
|
30
|
+
enabled: true
|
|
31
|
+
config:
|
|
32
|
+
threshold: 4
|
|
33
|
+
similar-code:
|
|
34
|
+
enabled: true
|
|
35
|
+
config:
|
|
36
|
+
threshold: 75
|
|
37
|
+
identical-code:
|
|
38
|
+
enabled: true
|
|
39
|
+
config:
|
|
40
|
+
threshold: 25
|
|
41
|
+
engines:
|
|
42
|
+
duplication:
|
|
43
|
+
# Duplication analyzes JavaScript (including JSX and ES6), PHP, Python,
|
|
44
|
+
# and Ruby code for structural similarities.
|
|
45
|
+
enabled: true
|
|
46
|
+
config:
|
|
47
|
+
languages:
|
|
48
|
+
- ruby
|
|
49
|
+
- javascript
|
|
50
|
+
fixme:
|
|
51
|
+
enabled: true
|
|
52
|
+
config:
|
|
53
|
+
strings:
|
|
54
|
+
- BUG
|
|
55
|
+
- FIXME
|
|
56
|
+
- HACK
|
|
57
|
+
rubocop:
|
|
58
|
+
# Style and quality checks for Ruby code.
|
|
59
|
+
# Includes support for modern Rubies (2.2+).
|
|
60
|
+
enabled: true
|
|
61
|
+
channel: rubocop-0-93
|
|
62
|
+
exclude_paths:
|
|
63
|
+
- vendor/
|
|
64
|
+
ratings:
|
|
65
|
+
# to receive a letter grade for a particular file or overall GPA for your project
|
|
66
|
+
paths:
|
|
67
|
+
- "app/**/*"
|
|
68
|
+
- "lib/**/*"
|
|
69
|
+
- "**.rb"
|
|
70
|
+
- "**.js"
|
|
71
|
+
exclude_paths:
|
|
72
|
+
- app/assets/javascripts/vendor/**/*
|
|
73
|
+
- features/**/*
|
|
74
|
+
- spec/**/*
|
|
75
|
+
- vendor/**/*
|
|
76
|
+
- node_modules/**/*
|
|
77
|
+
- db/**/*
|
|
78
|
+
- config/**/*
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: "Rubocop"
|
|
2
|
+
|
|
3
|
+
on: push
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
rubocop:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
strategy:
|
|
9
|
+
fail-fast: false
|
|
10
|
+
|
|
11
|
+
steps:
|
|
12
|
+
- name: Checkout repository
|
|
13
|
+
uses: actions/checkout@v2
|
|
14
|
+
|
|
15
|
+
# If running on a self-hosted runner, check it meets the requirements
|
|
16
|
+
# listed at https://github.com/ruby/setup-ruby#using-self-hosted-runners
|
|
17
|
+
- name: Set up Ruby
|
|
18
|
+
uses: ruby/setup-ruby@v1
|
|
19
|
+
with:
|
|
20
|
+
ruby-version: 2.6
|
|
21
|
+
|
|
22
|
+
- name: Intall legacy bundler version
|
|
23
|
+
run: gem install bundler -v 1.17.3
|
|
24
|
+
|
|
25
|
+
# This step is not necessary if you add the gem to your Gemfile
|
|
26
|
+
- name: Install Code Scanning integration
|
|
27
|
+
run: bundle _1.17.3_ add code-scanning-rubocop --version 0.4.0 --skip-install
|
|
28
|
+
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: bundle _1.17.3_ install
|
|
31
|
+
|
|
32
|
+
- name: Rubocop run
|
|
33
|
+
run: |
|
|
34
|
+
bash -c "
|
|
35
|
+
bundle exec rubocop --require code_scanning --format CodeScanning::SarifFormatter -o rubocop.sarif
|
|
36
|
+
[[ $? -ne 2 ]]
|
|
37
|
+
"
|
|
38
|
+
- name: Upload Sarif output
|
|
39
|
+
uses: github/codeql-action/upload-sarif@v1
|
|
40
|
+
with:
|
|
41
|
+
sarif_file: rubocop.sarif
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -12,7 +12,11 @@ AllCops:
|
|
|
12
12
|
- bin/*
|
|
13
13
|
- db/schema.rb
|
|
14
14
|
- node_modules/**/*
|
|
15
|
-
|
|
15
|
+
NewCops: enable
|
|
16
|
+
TargetRubyVersion: 2.6
|
|
17
|
+
|
|
18
|
+
Layout/LineLength:
|
|
19
|
+
Max: 120
|
|
16
20
|
|
|
17
21
|
Layout/MultilineMethodCallIndentation:
|
|
18
22
|
EnforcedStyle: indented_relative_to_receiver
|
|
@@ -35,16 +39,13 @@ Metrics/ClassLength:
|
|
|
35
39
|
Metrics/CyclomaticComplexity:
|
|
36
40
|
Max: 9
|
|
37
41
|
|
|
38
|
-
Metrics/LineLength:
|
|
39
|
-
Max: 120
|
|
40
|
-
|
|
41
42
|
Metrics/MethodLength:
|
|
42
43
|
Max: 50
|
|
43
44
|
|
|
44
45
|
Metrics/PerceivedComplexity:
|
|
45
46
|
Max: 9
|
|
46
47
|
|
|
47
|
-
Naming/
|
|
48
|
+
Naming/MethodParameterName:
|
|
48
49
|
MinNameLength: 2
|
|
49
50
|
|
|
50
51
|
Style/AndOr:
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.5
|
|
1
|
+
2.6.5
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to this project will be documented in this file.
|
|
3
|
+
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [0.4.0](https://github.com/learningtapestry/lt-lcms/compare/v0.3.1...v0.4.0)
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Add support for Google Shared Drives ([#12](https://github.com/learningtapestry/lt-lcms/pull/12))
|
|
12
|
+
|
|
13
|
+
## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.3.0...v0.3.1)
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- Fix the URLs inside links in the downloaded GDoc ([#9](https://github.com/learningtapestry/lt-lcms/pull/9))
|
|
17
|
+
|
|
18
|
+
## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.2.0...v0.3.0)
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- Add DPI param support for Google Drawings [@shlag3n](https://github.com/shlag3n)
|
|
22
|
+
|
|
23
|
+
## [0.2.0](https://github.com/learningtapestry/lt-lcms/compare/v0.1.1...v0.2.0) - 2020-01-13
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- Support for download google slides content [@shlag3n](https://github.com/shlag3n)
|
|
28
|
+
|
|
29
|
+
### Security
|
|
30
|
+
|
|
31
|
+
- Upgrade `rubyzip` gem to avoid security vulnerabilities [@paranoicsan](https://github.com/paranoicsan)
|
|
32
|
+
|
|
33
|
+
## [0.1.1](https://github.com/learningtapestry/lt-lcms/compare/v0.1.0...v0.1.1) - 2019-06-10
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- [#3](https://github.com/learningtapestry/lt-lcms/issues/3): Retrieve Google credentials token correctly [@paranoicsan](https://github.com/paranoicsan)
|
|
38
|
+
|
|
39
|
+
## [0.1.0] - 2019-03-12
|
|
40
|
+
|
|
41
|
+
- Initial release
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
lt-lcms (0.3.1)
|
|
5
|
+
google-api-client (~> 0.38)
|
|
6
|
+
httparty (~> 0.18)
|
|
7
|
+
lt-google-api (~> 0.2)
|
|
8
|
+
nokogiri (~> 1.10, >= 1.10.8)
|
|
9
|
+
rubyzip (~> 2)
|
|
10
|
+
|
|
11
|
+
GEM
|
|
12
|
+
remote: https://rubygems.org/
|
|
13
|
+
specs:
|
|
14
|
+
addressable (2.7.0)
|
|
15
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
16
|
+
ast (2.4.1)
|
|
17
|
+
childprocess (4.0.0)
|
|
18
|
+
declarative (0.0.20)
|
|
19
|
+
declarative-option (0.1.0)
|
|
20
|
+
faraday (1.0.1)
|
|
21
|
+
multipart-post (>= 1.2, < 3)
|
|
22
|
+
google-api-client (0.46.1)
|
|
23
|
+
addressable (~> 2.5, >= 2.5.1)
|
|
24
|
+
googleauth (~> 0.9)
|
|
25
|
+
httpclient (>= 2.8.1, < 3.0)
|
|
26
|
+
mini_mime (~> 1.0)
|
|
27
|
+
representable (~> 3.0)
|
|
28
|
+
retriable (>= 2.0, < 4.0)
|
|
29
|
+
rexml
|
|
30
|
+
signet (~> 0.12)
|
|
31
|
+
googleauth (0.14.0)
|
|
32
|
+
faraday (>= 0.17.3, < 2.0)
|
|
33
|
+
jwt (>= 1.4, < 3.0)
|
|
34
|
+
memoist (~> 0.16)
|
|
35
|
+
multi_json (~> 1.11)
|
|
36
|
+
os (>= 0.9, < 2.0)
|
|
37
|
+
signet (~> 0.14)
|
|
38
|
+
httparty (0.18.1)
|
|
39
|
+
mime-types (~> 3.0)
|
|
40
|
+
multi_xml (>= 0.5.2)
|
|
41
|
+
httpclient (2.8.3)
|
|
42
|
+
iniparse (1.5.0)
|
|
43
|
+
jwt (2.2.2)
|
|
44
|
+
lt-google-api (0.2.0)
|
|
45
|
+
google-api-client
|
|
46
|
+
googleauth
|
|
47
|
+
memoist (0.16.2)
|
|
48
|
+
mime-types (3.3.1)
|
|
49
|
+
mime-types-data (~> 3.2015)
|
|
50
|
+
mime-types-data (3.2020.0512)
|
|
51
|
+
mini_mime (1.0.2)
|
|
52
|
+
mini_portile2 (2.4.0)
|
|
53
|
+
multi_json (1.15.0)
|
|
54
|
+
multi_xml (0.6.0)
|
|
55
|
+
multipart-post (2.1.1)
|
|
56
|
+
nokogiri (1.10.10)
|
|
57
|
+
mini_portile2 (~> 2.4.0)
|
|
58
|
+
os (1.1.1)
|
|
59
|
+
overcommit (0.57.0)
|
|
60
|
+
childprocess (>= 0.6.3, < 5)
|
|
61
|
+
iniparse (~> 1.4)
|
|
62
|
+
parallel (1.19.2)
|
|
63
|
+
parser (2.7.2.0)
|
|
64
|
+
ast (~> 2.4.1)
|
|
65
|
+
public_suffix (4.0.6)
|
|
66
|
+
rainbow (3.0.0)
|
|
67
|
+
rake (13.0.1)
|
|
68
|
+
regexp_parser (1.8.2)
|
|
69
|
+
representable (3.0.4)
|
|
70
|
+
declarative (< 0.1.0)
|
|
71
|
+
declarative-option (< 0.2.0)
|
|
72
|
+
uber (< 0.2.0)
|
|
73
|
+
retriable (3.1.2)
|
|
74
|
+
rexml (3.2.4)
|
|
75
|
+
rubocop (0.93.1)
|
|
76
|
+
parallel (~> 1.10)
|
|
77
|
+
parser (>= 2.7.1.5)
|
|
78
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
79
|
+
regexp_parser (>= 1.8)
|
|
80
|
+
rexml
|
|
81
|
+
rubocop-ast (>= 0.6.0)
|
|
82
|
+
ruby-progressbar (~> 1.7)
|
|
83
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
84
|
+
rubocop-ast (0.8.0)
|
|
85
|
+
parser (>= 2.7.1.5)
|
|
86
|
+
ruby-progressbar (1.10.1)
|
|
87
|
+
rubyzip (2.3.0)
|
|
88
|
+
signet (0.14.0)
|
|
89
|
+
addressable (~> 2.3)
|
|
90
|
+
faraday (>= 0.17.3, < 2.0)
|
|
91
|
+
jwt (>= 1.5, < 3.0)
|
|
92
|
+
multi_json (~> 1.10)
|
|
93
|
+
uber (0.1.0)
|
|
94
|
+
unicode-display_width (1.7.0)
|
|
95
|
+
|
|
96
|
+
PLATFORMS
|
|
97
|
+
ruby
|
|
98
|
+
|
|
99
|
+
DEPENDENCIES
|
|
100
|
+
bundler (~> 1.16)
|
|
101
|
+
lt-lcms!
|
|
102
|
+
overcommit (~> 0.57)
|
|
103
|
+
rake (~> 13.0)
|
|
104
|
+
rubocop (~> 0.93.1)
|
|
105
|
+
|
|
106
|
+
BUNDLED WITH
|
|
107
|
+
1.17.3
|
data/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Lt::Lcms
|
|
2
2
|
|
|
3
|
+
[](https://codeclimate.com/github/learningtapestry/lt-lcms/maintainability)
|
|
4
|
+
[](https://app.codeship.com/projects/330485)
|
|
5
|
+
|
|
6
|
+
|
|
3
7
|
## Installation
|
|
4
8
|
|
|
5
9
|
Add this line to your application's Gemfile:
|
|
@@ -12,8 +12,8 @@ module Lt
|
|
|
12
12
|
MIME_TYPE_EXPORT = 'text/plain'
|
|
13
13
|
|
|
14
14
|
def self.file_id_for(url)
|
|
15
|
-
url.scan(%r{/d/([
|
|
16
|
-
url.scan(%r{/open\?id=([
|
|
15
|
+
url.scan(%r{/d/([^/]+)/?}).first.try(:first) ||
|
|
16
|
+
url.scan(%r{/open\?id=([^/]+)/?}).first.try(:first)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
attr_reader :content
|
|
@@ -48,7 +48,9 @@ module Lt
|
|
|
48
48
|
|
|
49
49
|
def file
|
|
50
50
|
@file ||= service.get_file(
|
|
51
|
-
file_id,
|
|
51
|
+
file_id,
|
|
52
|
+
fields: 'lastModifyingUser,modifiedTime,name,version',
|
|
53
|
+
supports_all_drives: true
|
|
52
54
|
)
|
|
53
55
|
end
|
|
54
56
|
|
|
@@ -7,7 +7,8 @@ module Lt
|
|
|
7
7
|
module Lesson
|
|
8
8
|
module Downloader
|
|
9
9
|
class Gdoc < Base
|
|
10
|
-
GOOGLE_DRAWING_RE = %r{https?://docs\.google\.com/?[^"]*/drawings/[^"]*}i
|
|
10
|
+
GOOGLE_DRAWING_RE = %r{https?://docs\.google\.com/?[^"]*/drawings/[^"]*}i.freeze
|
|
11
|
+
GOOGLE_URL_RE = %r{https://www\.google\.com/url\?q=([^&]*)&?.*}i.freeze
|
|
11
12
|
MIME_TYPE = 'application/vnd.google-apps.document'
|
|
12
13
|
MIME_TYPE_EXPORT = 'text/html'
|
|
13
14
|
|
|
@@ -16,26 +17,58 @@ module Lt
|
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
def download
|
|
19
|
-
super
|
|
20
|
+
super do |html|
|
|
21
|
+
fix_links handle_google_drawings(html)
|
|
22
|
+
end
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
private
|
|
23
26
|
|
|
24
27
|
attr_reader :options
|
|
25
28
|
|
|
29
|
+
BASE_DPI = 72.0
|
|
30
|
+
private_constant :BASE_DPI
|
|
31
|
+
|
|
32
|
+
def fix_links(html)
|
|
33
|
+
doc = Nokogiri::HTML(html)
|
|
34
|
+
doc.css('a').each do |link|
|
|
35
|
+
next if link['href'].blank?
|
|
36
|
+
|
|
37
|
+
link['href'] = CGI.unescape_html(link['href']).gsub GOOGLE_URL_RE, '\1'
|
|
38
|
+
end
|
|
39
|
+
doc.to_s
|
|
40
|
+
end
|
|
41
|
+
|
|
26
42
|
def handle_google_drawings(html)
|
|
27
43
|
return html unless (match = html.scan(GOOGLE_DRAWING_RE))
|
|
28
44
|
|
|
29
|
-
|
|
45
|
+
bearer = @credentials.fetch_access_token!['access_token']
|
|
46
|
+
headers = { 'Authorization' => "Bearer #{bearer}" }
|
|
30
47
|
|
|
31
48
|
match.to_a.uniq.each do |url|
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
upd_url = updated_drawing_url_for(url)
|
|
50
|
+
response = HTTParty.get CGI.unescapeHTML(upd_url), headers: headers
|
|
51
|
+
|
|
52
|
+
next unless response.code == 200
|
|
53
|
+
|
|
54
|
+
new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{upd_url}"
|
|
34
55
|
html = html.gsub(url, new_src)
|
|
35
56
|
end
|
|
36
57
|
|
|
37
58
|
html
|
|
38
59
|
end
|
|
60
|
+
|
|
61
|
+
# Update drawing url w/h parameters to download in better quality than default 72 dpi
|
|
62
|
+
def updated_drawing_url_for(url)
|
|
63
|
+
return url unless options[:dpi].present?
|
|
64
|
+
|
|
65
|
+
dpi_ratio = options[:dpi].to_f / BASE_DPI
|
|
66
|
+
uri = URI.parse(url)
|
|
67
|
+
query = CGI.parse(uri.query).transform_values(&:first)
|
|
68
|
+
query['w'] = (query['w'].to_i * dpi_ratio).round.to_s
|
|
69
|
+
query['h'] = (query['h'].to_i * dpi_ratio).round.to_s
|
|
70
|
+
URI::HTTPS.build(host: uri.host, path: uri.path, query: query.to_query).to_s
|
|
71
|
+
end
|
|
39
72
|
end
|
|
40
73
|
end
|
|
41
74
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'zip'
|
|
4
|
+
|
|
5
|
+
module Lt
|
|
6
|
+
module Lcms
|
|
7
|
+
module Lesson
|
|
8
|
+
module Downloader
|
|
9
|
+
class Gslide < Lt::Lcms::Lesson::Downloader::Base
|
|
10
|
+
MIME_TYPE = 'application/vnd.google-apps.presentation'
|
|
11
|
+
MIME_TYPE_EXPORT = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
|
12
|
+
|
|
13
|
+
def self.gdoc_file_url(id)
|
|
14
|
+
"https://docs.google.com/presentation/d/#{id}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def initialize(credentials, file_url, opts = {})
|
|
18
|
+
super
|
|
19
|
+
@service = opts[:service]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def file_id
|
|
23
|
+
return super if @file_url.include?('/')
|
|
24
|
+
|
|
25
|
+
@file_id ||= @file_url
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/lt/lcms/version.rb
CHANGED
data/lt-lcms.gemspec
CHANGED
|
@@ -15,6 +15,8 @@ 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'
|
|
19
|
+
|
|
18
20
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
19
21
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
|
20
22
|
if spec.respond_to?(:metadata)
|
|
@@ -31,15 +33,14 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
|
|
31
33
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
32
34
|
spec.require_paths = ['lib']
|
|
33
35
|
|
|
34
|
-
spec.add_dependency 'google-api-client'
|
|
35
|
-
spec.add_dependency 'httparty'
|
|
36
|
-
spec.add_dependency 'lt-google-api', '~> 0.
|
|
37
|
-
spec.add_dependency '
|
|
36
|
+
spec.add_dependency 'google-api-client', '~> 0.38'
|
|
37
|
+
spec.add_dependency 'httparty', '~> 0.18'
|
|
38
|
+
spec.add_dependency 'lt-google-api', '~> 0.2'
|
|
39
|
+
spec.add_dependency 'nokogiri', '~> 1.10', '>= 1.10.8'
|
|
40
|
+
spec.add_dependency 'rubyzip', '~> 2'
|
|
38
41
|
|
|
39
|
-
spec.add_development_dependency 'brakeman'
|
|
40
42
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
41
|
-
spec.add_development_dependency '
|
|
42
|
-
spec.add_development_dependency '
|
|
43
|
-
spec.add_development_dependency '
|
|
44
|
-
spec.add_development_dependency 'rubocop'
|
|
43
|
+
spec.add_development_dependency 'overcommit', '~> 0.57'
|
|
44
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
45
|
+
spec.add_development_dependency 'rubocop', '~> 0.93.1'
|
|
45
46
|
end
|
metadata
CHANGED
|
@@ -1,85 +1,91 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lt-lcms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Kuznetsov
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-10-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: google-api-client
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
19
|
+
version: '0.38'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
26
|
+
version: '0.38'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: httparty
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
33
|
+
version: '0.18'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
40
|
+
version: '0.18'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: lt-google-api
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
47
|
+
version: '0.2'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.
|
|
54
|
+
version: '0.2'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: nokogiri
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.
|
|
61
|
+
version: '1.10'
|
|
62
|
+
- - ">="
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: 1.10.8
|
|
62
65
|
type: :runtime
|
|
63
66
|
prerelease: false
|
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
68
|
requirements:
|
|
66
69
|
- - "~>"
|
|
67
70
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.
|
|
71
|
+
version: '1.10'
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.10.8
|
|
69
75
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
76
|
+
name: rubyzip
|
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
|
72
78
|
requirements:
|
|
73
|
-
- - "
|
|
79
|
+
- - "~>"
|
|
74
80
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
76
|
-
type: :
|
|
81
|
+
version: '2'
|
|
82
|
+
type: :runtime
|
|
77
83
|
prerelease: false
|
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
85
|
requirements:
|
|
80
|
-
- - "
|
|
86
|
+
- - "~>"
|
|
81
87
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
88
|
+
version: '2'
|
|
83
89
|
- !ruby/object:Gem::Dependency
|
|
84
90
|
name: bundler
|
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,62 +100,48 @@ dependencies:
|
|
|
94
100
|
- - "~>"
|
|
95
101
|
- !ruby/object:Gem::Version
|
|
96
102
|
version: '1.16'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: bundler-audit
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
103
|
- !ruby/object:Gem::Dependency
|
|
112
104
|
name: overcommit
|
|
113
105
|
requirement: !ruby/object:Gem::Requirement
|
|
114
106
|
requirements:
|
|
115
107
|
- - "~>"
|
|
116
108
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0.
|
|
109
|
+
version: '0.57'
|
|
118
110
|
type: :development
|
|
119
111
|
prerelease: false
|
|
120
112
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
113
|
requirements:
|
|
122
114
|
- - "~>"
|
|
123
115
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0.
|
|
116
|
+
version: '0.57'
|
|
125
117
|
- !ruby/object:Gem::Dependency
|
|
126
118
|
name: rake
|
|
127
119
|
requirement: !ruby/object:Gem::Requirement
|
|
128
120
|
requirements:
|
|
129
121
|
- - "~>"
|
|
130
122
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
123
|
+
version: '13.0'
|
|
132
124
|
type: :development
|
|
133
125
|
prerelease: false
|
|
134
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
127
|
requirements:
|
|
136
128
|
- - "~>"
|
|
137
129
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
130
|
+
version: '13.0'
|
|
139
131
|
- !ruby/object:Gem::Dependency
|
|
140
132
|
name: rubocop
|
|
141
133
|
requirement: !ruby/object:Gem::Requirement
|
|
142
134
|
requirements:
|
|
143
|
-
- - "
|
|
135
|
+
- - "~>"
|
|
144
136
|
- !ruby/object:Gem::Version
|
|
145
|
-
version:
|
|
137
|
+
version: 0.93.1
|
|
146
138
|
type: :development
|
|
147
139
|
prerelease: false
|
|
148
140
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
141
|
requirements:
|
|
150
|
-
- - "
|
|
142
|
+
- - "~>"
|
|
151
143
|
- !ruby/object:Gem::Version
|
|
152
|
-
version:
|
|
144
|
+
version: 0.93.1
|
|
153
145
|
description: ''
|
|
154
146
|
email:
|
|
155
147
|
- alexander@learningtapeestry.com
|
|
@@ -158,12 +150,16 @@ executables: []
|
|
|
158
150
|
extensions: []
|
|
159
151
|
extra_rdoc_files: []
|
|
160
152
|
files:
|
|
153
|
+
- ".codeclimate.yml"
|
|
154
|
+
- ".github/workflows/rubocop-analysis.yml"
|
|
161
155
|
- ".gitignore"
|
|
162
156
|
- ".overcommit.yml"
|
|
163
157
|
- ".rubocop.yml"
|
|
164
158
|
- ".ruby-gemset"
|
|
165
159
|
- ".ruby-version"
|
|
160
|
+
- CHANGELOG.md
|
|
166
161
|
- Gemfile
|
|
162
|
+
- Gemfile.lock
|
|
167
163
|
- LICENSE
|
|
168
164
|
- README.md
|
|
169
165
|
- Rakefile
|
|
@@ -174,6 +170,7 @@ files:
|
|
|
174
170
|
- lib/lt/lcms/lesson/downloader.rb
|
|
175
171
|
- lib/lt/lcms/lesson/downloader/base.rb
|
|
176
172
|
- lib/lt/lcms/lesson/downloader/gdoc.rb
|
|
173
|
+
- lib/lt/lcms/lesson/downloader/gslide.rb
|
|
177
174
|
- lib/lt/lcms/lesson/downloader/gspreadsheet.rb
|
|
178
175
|
- lib/lt/lcms/lesson/downloader/pdf.rb
|
|
179
176
|
- lib/lt/lcms/lesson/uploader/gdoc.rb
|
|
@@ -184,7 +181,7 @@ licenses:
|
|
|
184
181
|
- Apache-2.0
|
|
185
182
|
metadata:
|
|
186
183
|
allowed_push_host: https://rubygems.org
|
|
187
|
-
post_install_message:
|
|
184
|
+
post_install_message:
|
|
188
185
|
rdoc_options: []
|
|
189
186
|
require_paths:
|
|
190
187
|
- lib
|
|
@@ -192,16 +189,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
192
189
|
requirements:
|
|
193
190
|
- - ">="
|
|
194
191
|
- !ruby/object:Gem::Version
|
|
195
|
-
version: '
|
|
192
|
+
version: '2.6'
|
|
196
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
194
|
requirements:
|
|
198
195
|
- - ">="
|
|
199
196
|
- !ruby/object:Gem::Version
|
|
200
197
|
version: '0'
|
|
201
198
|
requirements: []
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
signing_key:
|
|
199
|
+
rubygems_version: 3.0.6
|
|
200
|
+
signing_key:
|
|
205
201
|
specification_version: 4
|
|
206
202
|
summary: Contains set of classes to work with Google Docs based lesson objects
|
|
207
203
|
test_files: []
|