google_drive 1.0.4 → 1.0.5

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGZjNmU4ZTlhY2MxNmI0YTQ0OTIzNDQ5MTBlZjZhMWEyZTliZWNjYQ==
5
- data.tar.gz: !binary |-
6
- MGNlNTYxMjlkNGMyMzg0MTY5ODcwZjA0ZTk4ZDIwMjdlZTQ4Mjg1Nw==
2
+ SHA1:
3
+ metadata.gz: 6b4bb25ca507e0809ba9fc7a57f5a49667b61536
4
+ data.tar.gz: d6664ab492c6a12051d75890179eb06738df6821
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NjI5MmFjZjgyZWRiZDdkODNlZTU5NzY0ZDRiNjM0NDdlOTQzZjYyMmNkZWZm
10
- ZGRjNTQ5NDhjNjljNWMwN2FiMWRmMjIwMDYxMGZhODdjYjA3NWQ0OTgwM2I3
11
- YzdmNzRlMTk4NWUyZGRiMWIyYTc0YWM4YWE4ZjJlYjVlNTlkMzg=
12
- data.tar.gz: !binary |-
13
- Yzk1MThlNjc3NWY4NzAxMDE1M2Q0MjQxYTUxOTQ0YTIwMmUzZjM4N2FhZjZj
14
- NjZkNGEzNzIyMmIwYWVhNDk4MjhhNTFjNzFlOTA5MTA3MWUwMTkxNzc5OTFk
15
- YzRiOTU4Mjk2M2Q5YjE0ODkyMTE3NzAxYzg4ODFjNjc3YjU1ZTM=
6
+ metadata.gz: b0a978d591952834520f3c8832c6c795de5936893a492e885eff1589b422a60aa61b094bd52067258f3e7158b669d6fbd9152ee924100baddb629667c9e655dc
7
+ data.tar.gz: 14a9596a037ffbceb349c2f2c95bdb688ddbcbef68a5a1460d9426ecc10f52d82e415e3208991cd99ee18fa16469a32e7cd2462d29a6936f06ce9a0d8a1e9cec
data/README.rdoc CHANGED
@@ -19,22 +19,21 @@ Ver. 1.0.x is not 100% backward compatible with 0.3.x. Some methods have been re
19
19
 
20
20
  First, follow "Create a client ID and client secret" in {this page}[https://developers.google.com/drive/web/auth/web-server] to get a client ID and client secret for OAuth. Set "Application type" to "Other" in the form to create a client ID if you use GoogleDrive.saved_session method as in the example below.
21
21
 
22
+ Next, create a file config.json which contains the client ID and crient secret you got above, which looks like:
23
+
24
+ {
25
+ "client_id": "xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
26
+ "client_secret": "xxxxxxxxxxxxxxxxxxxxxxxx"
27
+ }
28
+
22
29
  Example to read/write files in Google Drive:
23
30
 
24
31
  require "google/api_client"
25
32
  require "google_drive"
26
33
 
27
- # The client ID and client secret you obtained in the step above.
28
- CLIENT_ID = ...
29
- CLIENT_SECRET = ...
30
-
31
34
  # Creates a session. This will prompt the credential via command line for the
32
- # first time and save it to ./stored_token.json file for later usages.
33
- #
34
- # If you are developing a Web app, and you want to ask the user to log in in
35
- # the Web app instead of via command line, follow the example code in:
36
- # http://gimite.net/doc/google-drive-ruby/GoogleDrive.html#method-c-login_with_oauth
37
- session = GoogleDrive.saved_session("./stored_token.json", nil, CLIENT_ID, CLIENT_SECRET)
35
+ # first time and save it to config.json file for later usages.
36
+ session = GoogleDrive.saved_session("config.json")
38
37
 
39
38
  # Gets list of remote files.
40
39
  session.files.each do |file|
@@ -50,16 +49,15 @@ Example to read/write files in Google Drive:
50
49
 
51
50
  # Updates content of the remote file.
52
51
  file.update_from_file("/path/to/hello.txt")
53
-
52
+
54
53
  Example to read/write spreadsheets:
55
54
 
56
55
  require "google/api_client"
57
56
  require "google_drive"
58
57
 
59
- # Same as the code above to get access_token...
60
-
61
- # Creates a session.
62
- session = GoogleDrive.login_with_oauth(access_token)
58
+ # Creates a session. This will prompt the credential via command line for the
59
+ # first time and save it to config.json file for later usages.
60
+ session = GoogleDrive.saved_session("config.json")
63
61
 
64
62
  # First worksheet of
65
63
  # https://docs.google.com/spreadsheet/ccc?key=pz7XtlQC-PYx-jrVMJErTcg
@@ -88,8 +86,7 @@ Example to read/write spreadsheets:
88
86
  # Reloads the worksheet to get changes by other clients.
89
87
  ws.reload
90
88
 
91
- API document: http://gimite.net/doc/google-drive-ruby/
92
-
89
+ API document: http://www.rubydoc.info/gems/google_drive
93
90
 
94
91
  = Source code
95
92
 
@@ -100,7 +97,7 @@ The license of this source is "New BSD Licence"
100
97
 
101
98
  = Supported environments
102
99
 
103
- Ruby 1.9.x or later. Checked with Ruby 1.9.3 and 2.1.3.
100
+ Ruby 1.9.x or later. Checked with Ruby 1.9.3 and 2.2.1.
104
101
 
105
102
 
106
103
  = Author
data/lib/google_drive.rb CHANGED
@@ -1,14 +1,12 @@
1
1
  # Author: Hiroshi Ichikawa <http://gimite.net/>
2
2
  # The license of this source is "New BSD Licence"
3
3
 
4
- require "json"
5
- require "google/api_client"
6
-
7
- require "google_drive/session"
4
+ require 'json'
5
+ require 'google/api_client'
8
6
 
7
+ require 'google_drive/session'
9
8
 
10
9
  module GoogleDrive
11
-
12
10
  # Authenticates with given OAuth2 token.
13
11
  #
14
12
  # +access_token+ can be either OAuth2 access_token string, or OAuth2::AccessToken.
@@ -79,77 +77,86 @@ module GoogleDrive
79
77
  return Session.new(client_or_access_token, proxy)
80
78
  end
81
79
 
82
- # Restores GoogleDrive::Session from +path+ and returns it.
83
- # If +path+ doesn't exist or authentication has failed, prompts the user to authorize the access,
84
- # stores the session to +path+ and returns it.
80
+ # Returns GoogleDrive::Session constructed from a config JSON file at +path+.
81
+ #
82
+ # Follow the following steps to use this method:
83
+ #
84
+ # First, follow "Create a client ID and client secret" in
85
+ # {this page}[https://developers.google.com/drive/web/auth/web-server] to get a client ID
86
+ # and client secret for OAuth. Set "Application type" to "Other" in the form to create a
87
+ # client ID if you use GoogleDrive.saved_session method as in the example below.
88
+ #
89
+ # Next, create a file config.json which contains the client ID and client secret you got
90
+ # above, which looks like:
91
+ #
92
+ # {
93
+ # "client_id": "xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
94
+ # "client_secret": "xxxxxxxxxxxxxxxxxxxxxxxx"
95
+ # }
96
+ #
97
+ # Then you can construct a GoogleDrive::Session by:
98
+ #
99
+ # session = GoogleDrive.saved_session("config.json")
100
+ #
101
+ # This will prompt the credential via command line for the first time and save it to
102
+ # config.json file for later usages.
85
103
  #
86
104
  # +path+ defaults to ENV["HOME"] + "/.ruby_google_drive.token".
87
105
  #
88
- # You can specify your own OAuth +client_id+ and +client_secret+. Otherwise the default one is used.
89
- def self.saved_session(path = nil, proxy = nil, client_id = nil, client_secret = nil)
106
+ # If the file doesn't exist or client ID/secret are not given in the file, the default client
107
+ # ID/secret embedded in the library is used.
108
+ def self.saved_session(
109
+ path = nil, proxy = nil, client_id = nil, client_secret = nil)
110
+ config = Config.new(path || ENV['HOME'] + '/.ruby_google_drive.token')
111
+
112
+ config.scope ||= [
113
+ 'https://www.googleapis.com/auth/drive',
114
+ 'https://spreadsheets.google.com/feeds/',
115
+ ]
90
116
 
91
- if proxy
92
- raise(
93
- ArgumentError,
94
- "Specifying a proxy object is no longer supported. Set ENV[\"http_proxy\"] instead.")
117
+ if client_id && client_secret
118
+ config.client_id = client_id
119
+ config.client_secret = client_secret
95
120
  end
96
-
97
- if !client_id && !client_secret
98
- client_id = "452925651630-egr1f18o96acjjvphpbbd1qlsevkho1d.apps.googleusercontent.com"
99
- client_secret = "1U3-Krii5x1oLPrwD5zgn-ry"
100
- elsif !client_id || !client_secret
121
+ if !config.client_id && !config.client_secret
122
+ config.client_id = "452925651630-egr1f18o96acjjvphpbbd1qlsevkho1d.apps.googleusercontent.com"
123
+ config.client_secret = "1U3-Krii5x1oLPrwD5zgn-ry"
124
+ elsif !config.client_id || !config.client_secret
101
125
  raise(ArgumentError, "client_id and client_secret must be both specified or both omitted")
102
126
  end
103
127
 
104
- path ||= ENV["HOME"] + "/.ruby_google_drive.token"
105
- if ::File.exist?(path)
106
- lines = ::File.readlines(path)
107
- case lines.size
108
- when 1
109
- token_data = JSON.parse(lines[0].chomp())
110
- when 2
111
- # Old format.
112
- token_data = nil
113
- else
114
- raise(ArgumentError, "Not a token file: %s" % path)
115
- end
116
- else
117
- token_data = nil
128
+ if proxy
129
+ raise(
130
+ ArgumentError,
131
+ 'Specifying a proxy object is no longer supported. Set ENV["http_proxy"] instead.')
118
132
  end
119
133
 
134
+ refresh_token = config.refresh_token
135
+
120
136
  client = Google::APIClient.new(
121
- :application_name => "google_drive Ruby library",
122
- :application_version => "0.4.0"
137
+ :application_name => 'google_drive Ruby library',
138
+ :application_version => '0.4.0'
123
139
  )
124
- auth = client.authorization
125
- auth.client_id = client_id
126
- auth.client_secret = client_secret
127
- auth.scope = [
128
- "https://www.googleapis.com/auth/drive",
129
- "https://spreadsheets.google.com/feeds/"
130
- ]
131
- auth.redirect_uri = "urn:ietf:wg:oauth:2.0:oob"
132
-
133
- if token_data
134
-
135
- auth.refresh_token = token_data["refresh_token"]
136
- auth.fetch_access_token!()
137
140
 
141
+ auth = client.authorization
142
+ auth.client_id = config.client_id
143
+ auth.client_secret = config.client_secret
144
+ auth.scope = config.scope
145
+ auth.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
146
+
147
+ if config.refresh_token
148
+ auth.refresh_token = config.refresh_token
149
+ auth.fetch_access_token!
138
150
  else
139
-
140
151
  $stderr.print("\n1. Open this page:\n%s\n\n" % auth.authorization_uri)
141
- $stderr.print("2. Enter the authorization code shown in the page: ")
142
- auth.code = $stdin.gets().chomp()
143
- auth.fetch_access_token!()
144
- token_data = {"refresh_token" => auth.refresh_token}
145
- open(path, "w", 0600) do |f|
146
- f.puts(JSON.dump(token_data))
147
- end
148
-
152
+ $stderr.print('2. Enter the authorization code shown in the page: ')
153
+ auth.code = $stdin.gets.chomp
154
+ auth.fetch_access_token!
155
+ config.refresh_token = auth.refresh_token
149
156
  end
150
157
 
151
- return GoogleDrive.login_with_oauth(client)
158
+ config.save
152
159
 
160
+ return GoogleDrive.login_with_oauth(client)
153
161
  end
154
-
155
162
  end
@@ -0,0 +1,37 @@
1
+ # Author: Mateusz Czerwinski <mtczerwinski@gmail.com>
2
+ # The license of this source is "New BSD Licence"
3
+
4
+ require 'json'
5
+
6
+ module GoogleDrive
7
+ class Config #:nodoc:
8
+
9
+ FIELDS = %w(client_id client_secret scope refresh_token).freeze
10
+ attr_accessor(*FIELDS)
11
+
12
+ def initialize(config_path)
13
+ @config_path = config_path
14
+ if ::File.exist?(config_path)
15
+ JSON.parse(::File.read(config_path)).each do |key, value|
16
+ instance_variable_set("@#{key}", value) if FIELDS.include?(key)
17
+ end
18
+ end
19
+ end
20
+
21
+ def save
22
+ ::File.open(@config_path, 'w', 0600) { |f| f.write(to_json()) }
23
+ end
24
+
25
+ private
26
+
27
+ def to_json
28
+ hash = {}
29
+ FIELDS.each do |field|
30
+ value = __send__(field)
31
+ hash[field] = value if value
32
+ end
33
+ return JSON.pretty_generate(hash)
34
+ end
35
+
36
+ end
37
+ end
@@ -1,12 +1,8 @@
1
1
  # Author: Hiroshi Ichikawa <http://gimite.net/>
2
2
  # The license of this source is "New BSD Licence"
3
3
 
4
-
5
4
  module GoogleDrive
6
-
7
5
  # Raised on errors in this library.
8
6
  class Error < RuntimeError
9
-
10
7
  end
11
-
12
8
  end
@@ -19,6 +19,7 @@ require "google_drive/spreadsheet"
19
19
  require "google_drive/worksheet"
20
20
  require "google_drive/collection"
21
21
  require "google_drive/file"
22
+ require "google_drive/config"
22
23
 
23
24
 
24
25
  module GoogleDrive
@@ -212,7 +213,7 @@ module GoogleDrive
212
213
  def spreadsheet_by_title(title)
213
214
  return spreadsheets("q" => ["title = ?", title], "maxResults" => 1)[0]
214
215
  end
215
-
216
+
216
217
  # Returns GoogleDrive::Worksheet with given +url+.
217
218
  # You must specify URL of cell-based feed of the worksheet.
218
219
  #
@@ -229,12 +230,12 @@ module GoogleDrive
229
230
  worksheet_feed_entry = request(:get, worksheet_feed_url)
230
231
  return Worksheet.new(self, nil, worksheet_feed_entry)
231
232
  end
232
-
233
+
233
234
  # Returns the root collection.
234
235
  def root_collection
235
236
  return @root_collection ||= file_by_id("root")
236
237
  end
237
-
238
+
238
239
  # Returns the top-level collections (direct children of the root collection).
239
240
  #
240
241
  # By default, it returns the first 100 collections. See document of files method for how to get
@@ -242,7 +243,7 @@ module GoogleDrive
242
243
  def collections
243
244
  return self.root_collection.subcollections
244
245
  end
245
-
246
+
246
247
  # Returns a top-level collection whose title exactly matches +title+ as
247
248
  # GoogleDrive::Collection.
248
249
  # Returns nil if not found. If multiple collections with the +title+ are found, returns
@@ -250,7 +251,7 @@ module GoogleDrive
250
251
  def collection_by_title(title)
251
252
  return self.root_collection.subcollection_by_title(title)
252
253
  end
253
-
254
+
254
255
  # Returns GoogleDrive::Collection with given +url+.
255
256
  # You must specify either of:
256
257
  # - URL of the page you get when you go to https://docs.google.com/ with your browser and
@@ -286,7 +287,7 @@ module GoogleDrive
286
287
  :body_object => file)
287
288
  return wrap_api_file(api_result.data)
288
289
  end
289
-
290
+
290
291
  # Uploads a file with the given +title+ and +content+.
291
292
  # Returns a GoogleSpreadsheet::File object.
292
293
  #
@@ -294,11 +295,11 @@ module GoogleDrive
294
295
  # # Uploads and converts to a Google Docs document:
295
296
  # session.upload_from_string(
296
297
  # "Hello world.", "Hello", :content_type => "text/plain")
297
- #
298
+ #
298
299
  # # Uploads without conversion:
299
300
  # session.upload_from_string(
300
301
  # "Hello world.", "Hello", :content_type => "text/plain", :convert => false)
301
- #
302
+ #
302
303
  # # Uploads and converts to a Google Spreadsheet:
303
304
  # session.upload_from_string("hoge\tfoo\n", "Hoge", :content_type => "text/tab-separated-values")
304
305
  # session.upload_from_string("hoge,foo\n", "Hoge", :content_type => "text/tsv")
@@ -306,20 +307,20 @@ module GoogleDrive
306
307
  media = new_upload_io(StringIO.new(content), params)
307
308
  return upload_from_media(media, title, params)
308
309
  end
309
-
310
+
310
311
  # Uploads a local file.
311
312
  # Returns a GoogleSpreadsheet::File object.
312
313
  #
313
314
  # e.g.
314
315
  # # Uploads a text file and converts to a Google Docs document:
315
316
  # session.upload_from_file("/path/to/hoge.txt")
316
- #
317
+ #
317
318
  # # Uploads without conversion:
318
319
  # session.upload_from_file("/path/to/hoge.txt", "Hoge", :convert => false)
319
- #
320
+ #
320
321
  # # Uploads with explicit content type:
321
322
  # session.upload_from_file("/path/to/hoge", "Hoge", :content_type => "text/plain")
322
- #
323
+ #
323
324
  # # Uploads a text file and converts to a Google Spreadsheet:
324
325
  # session.upload_from_file("/path/to/hoge.csv", "Hoge")
325
326
  # session.upload_from_file("/path/to/hoge", "Hoge", :content_type => "text/csv")
@@ -393,11 +394,11 @@ module GoogleDrive
393
394
  return items
394
395
 
395
396
  end
396
-
397
+
397
398
  end
398
-
399
+
399
400
  def request(method, url, params = {}) #:nodoc:
400
-
401
+
401
402
  # Always uses HTTPS.
402
403
  url = url.gsub(%r{^http://}, "https://")
403
404
  data = params[:data]
@@ -424,9 +425,9 @@ module GoogleDrive
424
425
  end
425
426
  return convert_response(response, response_type)
426
427
  end
427
-
428
+
428
429
  end
429
-
430
+
430
431
  def inspect
431
432
  return "#<%p:0x%x>" % [self.class, self.object_id]
432
433
  end
metadata CHANGED
@@ -1,115 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_drive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroshi Ichikawa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-17 00:00:00.000000000 Z
11
+ date: 2015-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.4.4
20
- - - ! '!='
20
+ - - "!="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.5.1
23
- - - ! '!='
23
+ - - "!="
24
24
  - !ruby/object:Gem::Version
25
25
  version: 1.5.2
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ! '>='
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.4.4
33
- - - ! '!='
33
+ - - "!="
34
34
  - !ruby/object:Gem::Version
35
35
  version: 1.5.1
36
- - - ! '!='
36
+ - - "!="
37
37
  - !ruby/object:Gem::Version
38
38
  version: 1.5.2
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: oauth
41
41
  requirement: !ruby/object:Gem::Requirement
42
42
  requirements:
43
- - - ! '>='
43
+ - - ">="
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.3.6
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - ! '>='
50
+ - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 0.3.6
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: oauth2
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ! '>='
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: 0.5.0
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ! '>='
64
+ - - ">="
65
65
  - !ruby/object:Gem::Version
66
66
  version: 0.5.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: google-api-client
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ! '>='
71
+ - - ">="
72
72
  - !ruby/object:Gem::Version
73
73
  version: 0.7.0
74
- - - <
74
+ - - "<"
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0.9'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ! '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: 0.7.0
84
- - - <
84
+ - - "<"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0.9'
87
87
  - !ruby/object:Gem::Dependency
88
- name: minitest
88
+ name: test-unit
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - ! '>='
91
+ - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 5.1.0
93
+ version: 3.0.0
94
94
  type: :development
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
- - - ! '>='
98
+ - - ">="
99
99
  - !ruby/object:Gem::Version
100
- version: 5.1.0
100
+ version: 3.0.0
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: rake
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ! '>='
105
+ - - ">="
106
106
  - !ruby/object:Gem::Version
107
107
  version: 0.8.0
108
108
  type: :development
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
- - - ! '>='
112
+ - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: 0.8.0
115
115
  description: A library to read/write files/spreadsheets in Google Drive/Docs.
@@ -129,6 +129,7 @@ files:
129
129
  - lib/google_drive/api_client_fetcher.rb
130
130
  - lib/google_drive/authentication_error.rb
131
131
  - lib/google_drive/collection.rb
132
+ - lib/google_drive/config.rb
132
133
  - lib/google_drive/error.rb
133
134
  - lib/google_drive/file.rb
134
135
  - lib/google_drive/list.rb
@@ -138,49 +139,29 @@ files:
138
139
  - lib/google_drive/spreadsheet.rb
139
140
  - lib/google_drive/util.rb
140
141
  - lib/google_drive/worksheet.rb
141
- - lib/google_drive_v0.rb
142
- - lib/google_drive_v0/acl.rb
143
- - lib/google_drive_v0/acl_entry.rb
144
- - lib/google_drive_v0/api_client_fetcher.rb
145
- - lib/google_drive_v0/authentication_error.rb
146
- - lib/google_drive_v0/basic_fetcher.rb
147
- - lib/google_drive_v0/client_login_fetcher.rb
148
- - lib/google_drive_v0/collection.rb
149
- - lib/google_drive_v0/error.rb
150
- - lib/google_drive_v0/file.rb
151
- - lib/google_drive_v0/list.rb
152
- - lib/google_drive_v0/list_row.rb
153
- - lib/google_drive_v0/oauth1_fetcher.rb
154
- - lib/google_drive_v0/oauth2_fetcher.rb
155
- - lib/google_drive_v0/record.rb
156
- - lib/google_drive_v0/session.rb
157
- - lib/google_drive_v0/spreadsheet.rb
158
- - lib/google_drive_v0/table.rb
159
- - lib/google_drive_v0/util.rb
160
- - lib/google_drive_v0/worksheet.rb
161
142
  homepage: https://github.com/gimite/google-drive-ruby
162
143
  licenses:
163
144
  - New BSD
164
145
  metadata: {}
165
146
  post_install_message:
166
147
  rdoc_options:
167
- - --main
148
+ - "--main"
168
149
  - README.rdoc
169
150
  require_paths:
170
151
  - lib
171
152
  required_ruby_version: !ruby/object:Gem::Requirement
172
153
  requirements:
173
- - - ! '>='
154
+ - - ">="
174
155
  - !ruby/object:Gem::Version
175
156
  version: '0'
176
157
  required_rubygems_version: !ruby/object:Gem::Requirement
177
158
  requirements:
178
- - - ! '>='
159
+ - - ">="
179
160
  - !ruby/object:Gem::Version
180
161
  version: '0'
181
162
  requirements: []
182
163
  rubyforge_project:
183
- rubygems_version: 2.4.3
164
+ rubygems_version: 2.4.8
184
165
  signing_key:
185
166
  specification_version: 4
186
167
  summary: A library to read/write files/spreadsheets in Google Drive/Docs.