lt-lcms 0.1.0 → 0.4.0

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: 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: []