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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e86552226b2a1d601b69d9f7ba128aef282e19bd9bbe5a954c9effa91e20778
4
- data.tar.gz: e39929a79b6806c7f06c088c54f0f2607dfa54faeef9a896f5d72f4bb3b18345
3
+ metadata.gz: 0457fdeb3cc39fc8c06e638d92632c67620466d737bb8985dea9f209bb382c67
4
+ data.tar.gz: b6d8fcca9427740ba2b5a5a08a057e7d4f547ad40c281ee3ae7f3e0eb9f84c02
5
5
  SHA512:
6
- metadata.gz: 6800edd4f477c8d1e656ca550809c9591a11fabdca49a72496cf7d1c204fc0d4176f2974a2b97743610ad87c2bda9a77bc2862ce1c7171777ce625890f3201c7
7
- data.tar.gz: 2575cfa59818ca47765ed07551a75e9718ddfddbf7c96224ee9c65d3347b51ebb8b44f36a0623d25f9649ff956a4ea988ab4f476ca7774b40aed9f676929ce9b
6
+ metadata.gz: dfe6be47de5df9ce8c38b19901a6a80662eb6fcf9da1ed725d0abc148e54ea16072e2839058985e8decbe2f4899b99f5360ecc239fd3d2cf219337b9581371ce
7
+ data.tar.gz: d5bafdcdc0ea552af35f2a4dc9821defb963386aa62ff89f874ef247c7603490a76fb08af5f7ab5803f7fa49b9feea4a31c604a2132ab089ecf613b60f5f7cae
@@ -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
@@ -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
@@ -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
@@ -6,6 +6,3 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  # Specify your gem's dependencies in lt-lcms.gemspec
8
8
  gemspec
9
-
10
- gem 'lt-google-api', git: 'https://github.com/learningtapestry/lt-google-api',
11
- branch: 'master', ref: '566114e2'
@@ -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
+ [![Maintainability](https://api.codeclimate.com/v1/badges/07fa3d2919744d3bf328/maintainability)](https://codeclimate.com/github/learningtapestry/lt-lcms/maintainability)
4
+ [![Codeship Status for learningtapestry/lt-lcms](https://app.codeship.com/projects/b151f4e0-26f8-0137-ffc2-3e508df156a9/status?branch=master)](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/([^\/]+)/?}).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,26 +17,58 @@ 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
 
29
- headers = { 'Authorization' => "Bearer #{@credentials.access_token}" }
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
- response = HTTParty.get CGI.unescapeHTML(url), headers: headers
33
- new_src = "data:#{response.content_type};base64, #{Base64.encode64(response)}\" drawing_url=\"#{url}"
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
@@ -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.0'
5
+ VERSION = '0.4.0'
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,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.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'
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 'bundler-audit'
42
- spec.add_development_dependency 'overcommit', '~> 0.46'
43
- spec.add_development_dependency 'rake', '~> 10.0'
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.1.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: 2019-03-12 00:00:00.000000000 Z
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.1'
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.1'
54
+ version: '0.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubyzip
56
+ name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.2.2
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.2.2
71
+ version: '1.10'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.10.8
69
75
  - !ruby/object:Gem::Dependency
70
- name: brakeman
76
+ name: rubyzip
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ">="
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
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: '0'
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.46'
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.46'
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: '10.0'
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: '10.0'
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: '0'
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: '0'
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: '0'
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
- rubyforge_project:
203
- rubygems_version: 2.7.7
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: []