lt-lcms 0.1.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59af00db8e2e7e35cb72345b9194d013caf031764dc8d1d326c53ed38c51f970
4
- data.tar.gz: 9d49f1e203df39afe5ec9768a1ed41d57e78f9aa295acfee50f85734ddf67996
3
+ metadata.gz: 4ee5ceb78c88d8edd335cdcfa87c86d1ff18d55a137a4135d55c8dd735666c7c
4
+ data.tar.gz: 3c3f299638cf297e03893b4ba8f83de1d5c1c0930ed0903f3dd808b87dfa12d5
5
5
  SHA512:
6
- metadata.gz: c2200f66051030cf3876f4ac410db1703ea8df8bdc1047456a6c99845a9859d74607962845f0340a11f9948fd49e194ce612de41ad118fcd63e1c5f674a1624e
7
- data.tar.gz: f9b4c0e6f535bb16cef6fd2d15b37345e027f1275c8b74fc7c693ea4fbb0cafe874436ac0818b87f4e077fed7c7a21550d9a8bd7331240866bbe99be74f99f22
6
+ metadata.gz: 7accbcb946a8cd4a6a4ff80c9978c420d42a6e06d862369226a489839e858739516407041beae29fca4314380012bb102cb5aa7a0f508e3af1d58352249e8299
7
+ data.tar.gz: bc2cbb61996319098999abf33a6c44a1b33a1ca75017e00ddca0f5228cc3f01df72dccf2634bb35c2d67c98ee03dbd388c5152f44883c2bc043a1158974a327a
@@ -58,7 +58,7 @@ engines:
58
58
  # Style and quality checks for Ruby code.
59
59
  # Includes support for modern Rubies (2.2+).
60
60
  enabled: true
61
- channel: rubocop-0-59
61
+ channel: rubocop-0-93
62
62
  exclude_paths:
63
63
  - vendor/
64
64
  ratings:
@@ -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
@@ -10,5 +10,4 @@
10
10
  # Ignore IDE specific files
11
11
  .idea/
12
12
 
13
- Gemfile.lock
14
13
  .DS_Store
@@ -12,7 +12,11 @@ AllCops:
12
12
  - bin/*
13
13
  - db/schema.rb
14
14
  - node_modules/**/*
15
- TargetRubyVersion: 2.5
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/UncommunicativeMethodParamName:
48
+ Naming/MethodParameterName:
48
49
  MinNameLength: 2
49
50
 
50
51
  Style/AndOr:
@@ -1 +1 @@
1
- 2.5.2
1
+ 2.6.5
@@ -1,11 +1,47 @@
1
- # Change log
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
2
3
 
3
- ## 0.1.1 (2019-06-10)
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
- ### Bug fixes
7
+ ## [0.4.1](https://github.com/learningtapestry/lt-lcms/compare/v0.4.0...v0.4.1) - 2020-10-19
6
8
 
7
- * [#3](https://github.com/learningtapestry/lt-lcms/issues/3): Retrieve Google credentials token correctly ([@paranoicsan][])
9
+ ### Added
8
10
 
9
- ## 0.1.0 (2019-03-12)
11
+ - Bump lt-google-api to 0.2.1 ([#13](https://github.com/learningtapestry/lt-lcms/pull/13))
10
12
 
11
- * Initial release
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
@@ -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/([^\/]+)/?}).first.try(:first) ||
16
- url.scan(%r{/open\?id=([^\/]+)/?}).first.try(:first)
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, fields: 'lastModifyingUser,modifiedTime,name,version'
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(&method(:handle_google_drawings))
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
- response = HTTParty.get CGI.unescapeHTML(url), headers: headers
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=\"#{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
@@ -12,7 +12,7 @@ module Lt
12
12
  end
13
13
 
14
14
  def pdf_content
15
- service.get_file(file_id, download_dest: StringIO.new).string
15
+ service.get_file(file_id, download_dest: StringIO.new, supports_all_drives: true).string
16
16
  end
17
17
  end
18
18
  end
@@ -19,7 +19,8 @@ module Lt
19
19
  file_metadata,
20
20
  fields: 'id',
21
21
  upload_source: StringIO.new(content),
22
- content_type: content_type
22
+ content_type: content_type,
23
+ supports_all_drives: true
23
24
  )
24
25
  file.id
25
26
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lt
4
4
  module Lcms
5
- VERSION = '0.1.1'
5
+ VERSION = '0.4.1'
6
6
  end
7
7
  end
@@ -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 'rubyzip', '~> 1.2.2'
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 'bundler-audit'
41
- spec.add_development_dependency 'overcommit', '~> 0.46'
42
- spec.add_development_dependency 'rake', '~> 10.0'
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.1.1
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: 2019-06-10 00:00:00.000000000 Z
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.1'
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.1'
57
+ version: '0.2'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.2.1
55
61
  - !ruby/object:Gem::Dependency
56
- name: rubyzip
62
+ name: nokogiri
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 1.2.2
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.2.2
77
+ version: '1.10'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.10.8
69
81
  - !ruby/object:Gem::Dependency
70
- name: bundler
82
+ name: rubyzip
71
83
  requirement: !ruby/object:Gem::Requirement
72
84
  requirements:
73
85
  - - "~>"
74
86
  - !ruby/object:Gem::Version
75
- version: '1.16'
76
- type: :development
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: '1.16'
94
+ version: '2'
83
95
  - !ruby/object:Gem::Dependency
84
- name: bundler-audit
96
+ name: bundler
85
97
  requirement: !ruby/object:Gem::Requirement
86
98
  requirements:
87
- - - ">="
99
+ - - "~>"
88
100
  - !ruby/object:Gem::Version
89
- version: '0'
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: '0'
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.46'
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.46'
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: '10.0'
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: '10.0'
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.59.2
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.59.2
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: '0'
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
- rubyforge_project:
191
- rubygems_version: 2.7.9
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: []