lt-lcms 0.1.1 → 0.4.1
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 +1 -1
- 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 +42 -6
- data/Gemfile.lock +109 -0
- data/lib/lt/lcms/lesson/downloader/base.rb +5 -3
- data/lib/lt/lcms/lesson/downloader/gdoc.rb +33 -4
- 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 -8
- metadata +50 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4ee5ceb78c88d8edd335cdcfa87c86d1ff18d55a137a4135d55c8dd735666c7c
|
|
4
|
+
data.tar.gz: 3c3f299638cf297e03893b4ba8f83de1d5c1c0930ed0903f3dd808b87dfa12d5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7accbcb946a8cd4a6a4ff80c9978c420d42a6e06d862369226a489839e858739516407041beae29fca4314380012bb102cb5aa7a0f508e3af1d58352249e8299
|
|
7
|
+
data.tar.gz: bc2cbb61996319098999abf33a6c44a1b33a1ca75017e00ddca0f5228cc3f01df72dccf2634bb35c2d67c98ee03dbd388c5152f44883c2bc043a1158974a327a
|
data/.codeclimate.yml
CHANGED
|
@@ -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
CHANGED
|
@@ -1,11 +1,47 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to this project will be documented in this file.
|
|
2
3
|
|
|
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).
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
## [0.4.1](https://github.com/learningtapestry/lt-lcms/compare/v0.4.0...v0.4.1) - 2020-10-19
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
### Added
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
- Bump lt-google-api to 0.2.1 ([#13](https://github.com/learningtapestry/lt-lcms/pull/13))
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## [0.4.0](https://github.com/learningtapestry/lt-lcms/compare/v0.3.1...v0.4.0)
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Add support for Google Shared Drives ([#12](https://github.com/learningtapestry/lt-lcms/pull/12))
|
|
18
|
+
|
|
19
|
+
## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.3.0...v0.3.1)
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- Fix the URLs inside links in the downloaded GDoc ([#9](https://github.com/learningtapestry/lt-lcms/pull/9))
|
|
23
|
+
|
|
24
|
+
## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.2.0...v0.3.0)
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- Add DPI param support for Google Drawings [@shlag3n](https://github.com/shlag3n)
|
|
28
|
+
|
|
29
|
+
## [0.2.0](https://github.com/learningtapestry/lt-lcms/compare/v0.1.1...v0.2.0) - 2020-01-13
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- Support for download google slides content [@shlag3n](https://github.com/shlag3n)
|
|
34
|
+
|
|
35
|
+
### Security
|
|
36
|
+
|
|
37
|
+
- Upgrade `rubyzip` gem to avoid security vulnerabilities [@paranoicsan](https://github.com/paranoicsan)
|
|
38
|
+
|
|
39
|
+
## [0.1.1](https://github.com/learningtapestry/lt-lcms/compare/v0.1.0...v0.1.1) - 2019-06-10
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- [#3](https://github.com/learningtapestry/lt-lcms/issues/3): Retrieve Google credentials token correctly [@paranoicsan](https://github.com/paranoicsan)
|
|
44
|
+
|
|
45
|
+
## [0.1.0] - 2019-03-12
|
|
46
|
+
|
|
47
|
+
- Initial release
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
lt-lcms (0.4.0)
|
|
5
|
+
google-api-client (~> 0.38)
|
|
6
|
+
httparty (~> 0.18)
|
|
7
|
+
lt-google-api (~> 0.2, >= 0.2.1)
|
|
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.1.0)
|
|
21
|
+
multipart-post (>= 1.2, < 3)
|
|
22
|
+
ruby2_keywords
|
|
23
|
+
google-api-client (0.46.1)
|
|
24
|
+
addressable (~> 2.5, >= 2.5.1)
|
|
25
|
+
googleauth (~> 0.9)
|
|
26
|
+
httpclient (>= 2.8.1, < 3.0)
|
|
27
|
+
mini_mime (~> 1.0)
|
|
28
|
+
representable (~> 3.0)
|
|
29
|
+
retriable (>= 2.0, < 4.0)
|
|
30
|
+
rexml
|
|
31
|
+
signet (~> 0.12)
|
|
32
|
+
googleauth (0.14.0)
|
|
33
|
+
faraday (>= 0.17.3, < 2.0)
|
|
34
|
+
jwt (>= 1.4, < 3.0)
|
|
35
|
+
memoist (~> 0.16)
|
|
36
|
+
multi_json (~> 1.11)
|
|
37
|
+
os (>= 0.9, < 2.0)
|
|
38
|
+
signet (~> 0.14)
|
|
39
|
+
httparty (0.18.1)
|
|
40
|
+
mime-types (~> 3.0)
|
|
41
|
+
multi_xml (>= 0.5.2)
|
|
42
|
+
httpclient (2.8.3)
|
|
43
|
+
iniparse (1.5.0)
|
|
44
|
+
jwt (2.2.2)
|
|
45
|
+
lt-google-api (0.2.1)
|
|
46
|
+
google-api-client
|
|
47
|
+
googleauth
|
|
48
|
+
memoist (0.16.2)
|
|
49
|
+
mime-types (3.3.1)
|
|
50
|
+
mime-types-data (~> 3.2015)
|
|
51
|
+
mime-types-data (3.2020.0512)
|
|
52
|
+
mini_mime (1.0.2)
|
|
53
|
+
mini_portile2 (2.4.0)
|
|
54
|
+
multi_json (1.15.0)
|
|
55
|
+
multi_xml (0.6.0)
|
|
56
|
+
multipart-post (2.1.1)
|
|
57
|
+
nokogiri (1.10.10)
|
|
58
|
+
mini_portile2 (~> 2.4.0)
|
|
59
|
+
os (1.1.1)
|
|
60
|
+
overcommit (0.57.0)
|
|
61
|
+
childprocess (>= 0.6.3, < 5)
|
|
62
|
+
iniparse (~> 1.4)
|
|
63
|
+
parallel (1.19.2)
|
|
64
|
+
parser (2.7.2.0)
|
|
65
|
+
ast (~> 2.4.1)
|
|
66
|
+
public_suffix (4.0.6)
|
|
67
|
+
rainbow (3.0.0)
|
|
68
|
+
rake (13.0.1)
|
|
69
|
+
regexp_parser (1.8.2)
|
|
70
|
+
representable (3.0.4)
|
|
71
|
+
declarative (< 0.1.0)
|
|
72
|
+
declarative-option (< 0.2.0)
|
|
73
|
+
uber (< 0.2.0)
|
|
74
|
+
retriable (3.1.2)
|
|
75
|
+
rexml (3.2.4)
|
|
76
|
+
rubocop (0.93.1)
|
|
77
|
+
parallel (~> 1.10)
|
|
78
|
+
parser (>= 2.7.1.5)
|
|
79
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
80
|
+
regexp_parser (>= 1.8)
|
|
81
|
+
rexml
|
|
82
|
+
rubocop-ast (>= 0.6.0)
|
|
83
|
+
ruby-progressbar (~> 1.7)
|
|
84
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
85
|
+
rubocop-ast (0.8.0)
|
|
86
|
+
parser (>= 2.7.1.5)
|
|
87
|
+
ruby-progressbar (1.10.1)
|
|
88
|
+
ruby2_keywords (0.0.2)
|
|
89
|
+
rubyzip (2.3.0)
|
|
90
|
+
signet (0.14.0)
|
|
91
|
+
addressable (~> 2.3)
|
|
92
|
+
faraday (>= 0.17.3, < 2.0)
|
|
93
|
+
jwt (>= 1.5, < 3.0)
|
|
94
|
+
multi_json (~> 1.10)
|
|
95
|
+
uber (0.1.0)
|
|
96
|
+
unicode-display_width (1.7.0)
|
|
97
|
+
|
|
98
|
+
PLATFORMS
|
|
99
|
+
ruby
|
|
100
|
+
|
|
101
|
+
DEPENDENCIES
|
|
102
|
+
bundler (~> 1.16)
|
|
103
|
+
lt-lcms!
|
|
104
|
+
overcommit (~> 0.57)
|
|
105
|
+
rake (~> 13.0)
|
|
106
|
+
rubocop (~> 0.93.1)
|
|
107
|
+
|
|
108
|
+
BUNDLED WITH
|
|
109
|
+
1.17.3
|
|
@@ -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,13 +17,28 @@ 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
|
|
|
@@ -30,16 +46,29 @@ module Lt
|
|
|
30
46
|
headers = { 'Authorization' => "Bearer #{bearer}" }
|
|
31
47
|
|
|
32
48
|
match.to_a.uniq.each do |url|
|
|
33
|
-
|
|
49
|
+
upd_url = updated_drawing_url_for(url)
|
|
50
|
+
response = HTTParty.get CGI.unescapeHTML(upd_url), headers: headers
|
|
34
51
|
|
|
35
52
|
next unless response.code == 200
|
|
36
53
|
|
|
37
|
-
new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{
|
|
54
|
+
new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{upd_url}"
|
|
38
55
|
html = html.gsub(url, new_src)
|
|
39
56
|
end
|
|
40
57
|
|
|
41
58
|
html
|
|
42
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
|
|
43
72
|
end
|
|
44
73
|
end
|
|
45
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,14 +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.1'
|
|
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', '>= 0.2.1'
|
|
39
|
+
spec.add_dependency 'nokogiri', '~> 1.10', '>= 1.10.8'
|
|
40
|
+
spec.add_dependency 'rubyzip', '~> 2'
|
|
38
41
|
|
|
39
42
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
40
|
-
spec.add_development_dependency '
|
|
41
|
-
spec.add_development_dependency '
|
|
42
|
-
spec.add_development_dependency '
|
|
43
|
-
spec.add_development_dependency 'rubocop', '~> 0.59.2'
|
|
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'
|
|
44
46
|
end
|
metadata
CHANGED
|
@@ -1,141 +1,153 @@
|
|
|
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.1
|
|
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-19 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
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: 0.2.1
|
|
48
51
|
type: :runtime
|
|
49
52
|
prerelease: false
|
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
54
|
requirements:
|
|
52
55
|
- - "~>"
|
|
53
56
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.
|
|
57
|
+
version: '0.2'
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 0.2.1
|
|
55
61
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
62
|
+
name: nokogiri
|
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
|
58
64
|
requirements:
|
|
59
65
|
- - "~>"
|
|
60
66
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.
|
|
67
|
+
version: '1.10'
|
|
68
|
+
- - ">="
|
|
69
|
+
- !ruby/object:Gem::Version
|
|
70
|
+
version: 1.10.8
|
|
62
71
|
type: :runtime
|
|
63
72
|
prerelease: false
|
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
74
|
requirements:
|
|
66
75
|
- - "~>"
|
|
67
76
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.
|
|
77
|
+
version: '1.10'
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: 1.10.8
|
|
69
81
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
82
|
+
name: rubyzip
|
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
|
72
84
|
requirements:
|
|
73
85
|
- - "~>"
|
|
74
86
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
76
|
-
type: :
|
|
87
|
+
version: '2'
|
|
88
|
+
type: :runtime
|
|
77
89
|
prerelease: false
|
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
91
|
requirements:
|
|
80
92
|
- - "~>"
|
|
81
93
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
94
|
+
version: '2'
|
|
83
95
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: bundler
|
|
96
|
+
name: bundler
|
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
|
86
98
|
requirements:
|
|
87
|
-
- - "
|
|
99
|
+
- - "~>"
|
|
88
100
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
101
|
+
version: '1.16'
|
|
90
102
|
type: :development
|
|
91
103
|
prerelease: false
|
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
105
|
requirements:
|
|
94
|
-
- - "
|
|
106
|
+
- - "~>"
|
|
95
107
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
108
|
+
version: '1.16'
|
|
97
109
|
- !ruby/object:Gem::Dependency
|
|
98
110
|
name: overcommit
|
|
99
111
|
requirement: !ruby/object:Gem::Requirement
|
|
100
112
|
requirements:
|
|
101
113
|
- - "~>"
|
|
102
114
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0.
|
|
115
|
+
version: '0.57'
|
|
104
116
|
type: :development
|
|
105
117
|
prerelease: false
|
|
106
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
119
|
requirements:
|
|
108
120
|
- - "~>"
|
|
109
121
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0.
|
|
122
|
+
version: '0.57'
|
|
111
123
|
- !ruby/object:Gem::Dependency
|
|
112
124
|
name: rake
|
|
113
125
|
requirement: !ruby/object:Gem::Requirement
|
|
114
126
|
requirements:
|
|
115
127
|
- - "~>"
|
|
116
128
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
129
|
+
version: '13.0'
|
|
118
130
|
type: :development
|
|
119
131
|
prerelease: false
|
|
120
132
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
133
|
requirements:
|
|
122
134
|
- - "~>"
|
|
123
135
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
136
|
+
version: '13.0'
|
|
125
137
|
- !ruby/object:Gem::Dependency
|
|
126
138
|
name: rubocop
|
|
127
139
|
requirement: !ruby/object:Gem::Requirement
|
|
128
140
|
requirements:
|
|
129
141
|
- - "~>"
|
|
130
142
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.
|
|
143
|
+
version: 0.93.1
|
|
132
144
|
type: :development
|
|
133
145
|
prerelease: false
|
|
134
146
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
147
|
requirements:
|
|
136
148
|
- - "~>"
|
|
137
149
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.
|
|
150
|
+
version: 0.93.1
|
|
139
151
|
description: ''
|
|
140
152
|
email:
|
|
141
153
|
- alexander@learningtapeestry.com
|
|
@@ -145,6 +157,7 @@ extensions: []
|
|
|
145
157
|
extra_rdoc_files: []
|
|
146
158
|
files:
|
|
147
159
|
- ".codeclimate.yml"
|
|
160
|
+
- ".github/workflows/rubocop-analysis.yml"
|
|
148
161
|
- ".gitignore"
|
|
149
162
|
- ".overcommit.yml"
|
|
150
163
|
- ".rubocop.yml"
|
|
@@ -152,6 +165,7 @@ files:
|
|
|
152
165
|
- ".ruby-version"
|
|
153
166
|
- CHANGELOG.md
|
|
154
167
|
- Gemfile
|
|
168
|
+
- Gemfile.lock
|
|
155
169
|
- LICENSE
|
|
156
170
|
- README.md
|
|
157
171
|
- Rakefile
|
|
@@ -162,6 +176,7 @@ files:
|
|
|
162
176
|
- lib/lt/lcms/lesson/downloader.rb
|
|
163
177
|
- lib/lt/lcms/lesson/downloader/base.rb
|
|
164
178
|
- lib/lt/lcms/lesson/downloader/gdoc.rb
|
|
179
|
+
- lib/lt/lcms/lesson/downloader/gslide.rb
|
|
165
180
|
- lib/lt/lcms/lesson/downloader/gspreadsheet.rb
|
|
166
181
|
- lib/lt/lcms/lesson/downloader/pdf.rb
|
|
167
182
|
- lib/lt/lcms/lesson/uploader/gdoc.rb
|
|
@@ -172,7 +187,7 @@ licenses:
|
|
|
172
187
|
- Apache-2.0
|
|
173
188
|
metadata:
|
|
174
189
|
allowed_push_host: https://rubygems.org
|
|
175
|
-
post_install_message:
|
|
190
|
+
post_install_message:
|
|
176
191
|
rdoc_options: []
|
|
177
192
|
require_paths:
|
|
178
193
|
- lib
|
|
@@ -180,16 +195,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
180
195
|
requirements:
|
|
181
196
|
- - ">="
|
|
182
197
|
- !ruby/object:Gem::Version
|
|
183
|
-
version: '
|
|
198
|
+
version: '2.6'
|
|
184
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
200
|
requirements:
|
|
186
201
|
- - ">="
|
|
187
202
|
- !ruby/object:Gem::Version
|
|
188
203
|
version: '0'
|
|
189
204
|
requirements: []
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
signing_key:
|
|
205
|
+
rubygems_version: 3.0.6
|
|
206
|
+
signing_key:
|
|
193
207
|
specification_version: 4
|
|
194
208
|
summary: Contains set of classes to work with Google Docs based lesson objects
|
|
195
209
|
test_files: []
|