lt-google-api 0.1.1 → 0.2.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: 2396f1acdc1cc0370e8a3443bf3e13e6c3d436e9abc5a0cbb7f586121095194a
4
- data.tar.gz: b9eae1600c9b30bac463c5b8ec1b39ca800b092306468c02adf5ce250c29264d
3
+ metadata.gz: e9444e503f8be57c766e0c911d17bcad4a1ae91f9c0cedb41e6fe7c2aaac22b4
4
+ data.tar.gz: 26594726c1328938016457e9d1c418d31b1bf870f1c79099ee2f2df8051386a0
5
5
  SHA512:
6
- metadata.gz: 5128bd51df7d59ce37e382411dc69b9794fd3014a490c0d5762994cb01d6e372246d383778812257b55b3787151f7dc5f0fe8197692459862705c668ff851a99
7
- data.tar.gz: c025162a5a4802d00409aa60958f6b51b6f174b45f4289321943d9b4f3248839fb07a4a7f1dc08efaeed4482b97aaaed60f99da98ed1867509464f143ac9340e
6
+ metadata.gz: 20c99bfa0afea23058e415ac0514117864c7232f6590a583e589fdcf8f4c3809e726939dc1b4bac317f24801ab25cd4245b4ca40983f03f38dc7acad28f8cb45
7
+ data.tar.gz: b5a6fdc5a4b4471a374f8f7abf75079892dcfed5647abef945ad7cffb85d743115ff58462aa02858d0f3263cd2b6b9095b764fe2c602c9fb34a230dae727e9a2
@@ -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,42 @@
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
+
39
+ - name: Upload Sarif output
40
+ uses: github/codeql-action/upload-sarif@v1
41
+ with:
42
+ 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,8 @@ AllCops:
12
12
  - bin/*
13
13
  - db/schema.rb
14
14
  - node_modules/**/*
15
- TargetRubyVersion: 2.5
15
+ NewCops: enable
16
+ TargetRubyVersion: 2.6
16
17
 
17
18
  Layout/MultilineMethodCallIndentation:
18
19
  EnforcedStyle: indented_relative_to_receiver
@@ -44,7 +45,7 @@ Metrics/MethodLength:
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
@@ -4,9 +4,15 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/learningtapestry/lt-google-api/compare/v0.1.1...HEAD)
7
+ ## [Unreleased](https://github.com/learningtapestry/lt-google-api/compare/v0.2.0...HEAD)
8
8
 
9
- ## [0.1.1](https://github.com/learningtapestry/lt-lcms/compare/v0.1.0...v0.1.1) - 2019-06-10
9
+ ## [0.2.0](https://github.com/learningtapestry/lt-lcms/compare/v0.1.1...v0.2.0) - 2020-10-15
10
+
11
+ ### Added
12
+
13
+ - Add support for Google Shared Drives ([#7](https://github.com/learningtapestry/lt-google-api/pull/7))
14
+
15
+ ## [0.1.1](https://github.com/learningtapestry/lt-lcms/compare/v0.1.0...v0.1.1) - 2020-01-13
10
16
 
11
17
  ### Added
12
18
 
@@ -0,0 +1,90 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ lt-google-api (0.1.1)
5
+ google-api-client
6
+ googleauth
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ ast (2.4.1)
14
+ childprocess (4.0.0)
15
+ declarative (0.0.20)
16
+ declarative-option (0.1.0)
17
+ faraday (1.0.1)
18
+ multipart-post (>= 1.2, < 3)
19
+ google-api-client (0.46.1)
20
+ addressable (~> 2.5, >= 2.5.1)
21
+ googleauth (~> 0.9)
22
+ httpclient (>= 2.8.1, < 3.0)
23
+ mini_mime (~> 1.0)
24
+ representable (~> 3.0)
25
+ retriable (>= 2.0, < 4.0)
26
+ rexml
27
+ signet (~> 0.12)
28
+ googleauth (0.14.0)
29
+ faraday (>= 0.17.3, < 2.0)
30
+ jwt (>= 1.4, < 3.0)
31
+ memoist (~> 0.16)
32
+ multi_json (~> 1.11)
33
+ os (>= 0.9, < 2.0)
34
+ signet (~> 0.14)
35
+ httpclient (2.8.3)
36
+ iniparse (1.5.0)
37
+ jwt (2.2.2)
38
+ memoist (0.16.2)
39
+ mini_mime (1.0.2)
40
+ multi_json (1.15.0)
41
+ multipart-post (2.1.1)
42
+ os (1.1.1)
43
+ overcommit (0.57.0)
44
+ childprocess (>= 0.6.3, < 5)
45
+ iniparse (~> 1.4)
46
+ parallel (1.19.2)
47
+ parser (2.7.2.0)
48
+ ast (~> 2.4.1)
49
+ public_suffix (4.0.6)
50
+ rainbow (3.0.0)
51
+ rake (13.0.1)
52
+ regexp_parser (1.8.2)
53
+ representable (3.0.4)
54
+ declarative (< 0.1.0)
55
+ declarative-option (< 0.2.0)
56
+ uber (< 0.2.0)
57
+ retriable (3.1.2)
58
+ rexml (3.2.4)
59
+ rubocop (0.93.1)
60
+ parallel (~> 1.10)
61
+ parser (>= 2.7.1.5)
62
+ rainbow (>= 2.2.2, < 4.0)
63
+ regexp_parser (>= 1.8)
64
+ rexml
65
+ rubocop-ast (>= 0.6.0)
66
+ ruby-progressbar (~> 1.7)
67
+ unicode-display_width (>= 1.4.0, < 2.0)
68
+ rubocop-ast (0.8.0)
69
+ parser (>= 2.7.1.5)
70
+ ruby-progressbar (1.10.1)
71
+ signet (0.14.0)
72
+ addressable (~> 2.3)
73
+ faraday (>= 0.17.3, < 2.0)
74
+ jwt (>= 1.5, < 3.0)
75
+ multi_json (~> 1.10)
76
+ uber (0.1.0)
77
+ unicode-display_width (1.7.0)
78
+
79
+ PLATFORMS
80
+ ruby
81
+
82
+ DEPENDENCIES
83
+ bundler (~> 1.16)
84
+ lt-google-api!
85
+ overcommit (~> 0.57)
86
+ rake (~> 13)
87
+ rubocop (~> 0.93.1)
88
+
89
+ BUNDLED WITH
90
+ 1.17.3
@@ -4,7 +4,7 @@ module Lt
4
4
  module Google
5
5
  module Api
6
6
  class Drive
7
- FOLDER_RE = %r{/drive/(.*/)?folders/([^\/?]+)/?}
7
+ FOLDER_RE = %r{/drive/(.*/)?folders/([^/?]+)/?}.freeze
8
8
  MIME_FILE = 'application/vnd.google-apps.document'
9
9
  MIME_FOLDER = 'application/vnd.google-apps.folder'
10
10
 
@@ -31,11 +31,15 @@ module Lt
31
31
 
32
32
  def copy(file_ids, folder_id)
33
33
  file_ids.each do |id|
34
- service.get_file(id, fields: 'name') do |f, err|
34
+ service.get_file(id, fields: 'name', supports_all_drives: true) do |f, err|
35
35
  if err.present?
36
36
  Rails.logger.error "Failed to get file with #{id}, #{err.message}"
37
37
  else
38
- service.copy_file(id, Google::Apis::DriveV3::File.new(name: f.name, parents: [folder_id]))
38
+ service.copy_file(
39
+ id,
40
+ Google::Apis::DriveV3::File.new(name: f.name, parents: [folder_id]),
41
+ supports_all_drives: true
42
+ )
39
43
  end
40
44
  end
41
45
  end
@@ -50,7 +54,7 @@ module Lt
50
54
  current_files.each do |file|
51
55
  next if new_files.detect { |f| f.name == file.name }
52
56
 
53
- service.delete_file(file.id)
57
+ service.delete_file(file.id, supports_all_drives: true)
54
58
  end
55
59
 
56
60
  new_files.each do |file|
@@ -59,7 +63,7 @@ module Lt
59
63
 
60
64
  # copy if it's a new file
61
65
  new_file = Google::Apis::DriveV3::File.new(name: file.name, parents: [target_id])
62
- service.copy_file(file.id, new_file)
66
+ service.copy_file(file.id, new_file, supports_all_drives: true)
63
67
  end
64
68
  end
65
69
 
@@ -73,7 +77,7 @@ module Lt
73
77
  mime_type: MIME_FOLDER,
74
78
  parents: [parent_id]
75
79
  )
76
- service.create_file(metadata)&.id
80
+ service.create_file(metadata, supports_all_drives: true)&.id
77
81
  end
78
82
 
79
83
  def list_file_ids_in(folder_id, mime_type: MIME_FILE, with_subfolders: true)
@@ -104,7 +108,8 @@ module Lt
104
108
  def fetch_folders(name, folder_id)
105
109
  service.list_files(
106
110
  q: "'#{folder_id}' in parents and name = '#{name}' and mimeType = '#{MIME_FOLDER}' and trashed = false",
107
- fields: 'files(id)'
111
+ fields: 'files(id)',
112
+ supports_all_drives: true
108
113
  )&.files
109
114
  end
110
115
 
@@ -113,7 +118,8 @@ module Lt
113
118
  def list(folder_id)
114
119
  service.list_files(
115
120
  q: "'#{folder_id}' in parents and mimeType = '#{MIME_FILE}' and trashed = false",
116
- fields: 'files(id, name)'
121
+ fields: 'files(id, name)',
122
+ supports_all_drives: true
117
123
  )&.files
118
124
  end
119
125
  end
@@ -3,7 +3,7 @@
3
3
  module Lt
4
4
  module Google
5
5
  module Api
6
- VERSION = '0.1.1'
6
+ VERSION = '0.2.0'
7
7
  end
8
8
  end
9
9
  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)
@@ -35,8 +37,7 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
35
37
  spec.add_dependency 'googleauth'
36
38
 
37
39
  spec.add_development_dependency 'bundler', '~> 1.16'
38
- spec.add_development_dependency 'bundler-audit'
39
- spec.add_development_dependency 'overcommit', '~> 0.49.1'
40
- spec.add_development_dependency 'rake', '~> 10.0'
41
- spec.add_development_dependency 'rubocop', '~> 0.59.2'
40
+ spec.add_development_dependency 'overcommit', '~> 0.57'
41
+ spec.add_development_dependency 'rake', '~> 13'
42
+ spec.add_development_dependency 'rubocop', '~> 0.93.1'
42
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lt-google-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.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: 2020-01-13 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
@@ -52,62 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.16'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler-audit
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: overcommit
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 0.49.1
61
+ version: '0.57'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: 0.49.1
68
+ version: '0.57'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rake
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '10.0'
75
+ version: '13'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '10.0'
82
+ version: '13'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rubocop
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 0.59.2
89
+ version: 0.93.1
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 0.59.2
96
+ version: 0.93.1
111
97
  description: ''
112
98
  email:
113
99
  - alexander@learningtapeestry.com
@@ -117,6 +103,7 @@ extensions: []
117
103
  extra_rdoc_files: []
118
104
  files:
119
105
  - ".codeclimate.yml"
106
+ - ".github/workflows/rubocop-analysis.yml"
120
107
  - ".gitignore"
121
108
  - ".overcommit.yml"
122
109
  - ".rubocop.yml"
@@ -124,6 +111,7 @@ files:
124
111
  - ".ruby-version"
125
112
  - CHANGELOG.md
126
113
  - Gemfile
114
+ - Gemfile.lock
127
115
  - LICENSE
128
116
  - README.md
129
117
  - Rakefile
@@ -142,7 +130,7 @@ licenses:
142
130
  - Apache-2.0
143
131
  metadata:
144
132
  allowed_push_host: https://rubygems.org
145
- post_install_message:
133
+ post_install_message:
146
134
  rdoc_options: []
147
135
  require_paths:
148
136
  - lib
@@ -150,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
138
  requirements:
151
139
  - - ">="
152
140
  - !ruby/object:Gem::Version
153
- version: '0'
141
+ version: '2.6'
154
142
  required_rubygems_version: !ruby/object:Gem::Requirement
155
143
  requirements:
156
144
  - - ">="
@@ -158,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
146
  version: '0'
159
147
  requirements: []
160
148
  rubygems_version: 3.0.6
161
- signing_key:
149
+ signing_key:
162
150
  specification_version: 4
163
151
  summary: Provides the set of classes to simplify work with Google services
164
152
  test_files: []