sheet_mapper 0.2.0 → 0.3.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 +7 -0
- data/.travis.yml +4 -1
- data/lib/sheet_mapper.rb +1 -1
- data/lib/sheet_mapper/spreadsheet.rb +11 -2
- data/lib/sheet_mapper/version.rb +1 -1
- data/sheet_mapper.gemspec +1 -1
- data/test/spreadsheet_test.rb +13 -15
- metadata +96 -119
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5f12d8b4314a6dc93f71ffdb24ec7539013bf492
|
4
|
+
data.tar.gz: 5d39c055124f86dfef968581ab1b5740891a3f36
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2b22b600b938ae02d9f3e2c2877225b07edfab2f843ec12b0e7de5da18833b5bf47ea3859d72b1d29316997a7fb7a7041f6161defea9ba6feadd33240549d261
|
7
|
+
data.tar.gz: 7a16ac180735b6c9381b5085704c67fdb21b7861f4d4b0eac3711bc8b5308fa95e5c025bd62367c322c56e5217c080f35a19f0da94b1589e9873c70711841ec1
|
data/.travis.yml
CHANGED
data/lib/sheet_mapper.rb
CHANGED
@@ -2,7 +2,7 @@ $:.unshift File.dirname(__FILE__)
|
|
2
2
|
|
3
3
|
require 'core_ext/hash_ext' unless Hash.method_defined?(:symbolize_keys)
|
4
4
|
require 'core_ext/object_ext' unless Object.method_defined?(:present?)
|
5
|
-
require '
|
5
|
+
require 'google_drive'
|
6
6
|
require 'sheet_mapper/version'
|
7
7
|
require 'sheet_mapper/collection'
|
8
8
|
require 'sheet_mapper/spreadsheet'
|
@@ -5,8 +5,8 @@ module SheetMapper
|
|
5
5
|
# SheetMapper::Worksheet.new(:mapper => SomeMapper, :key => 'sheet_key', :login => 'user', :password => 'pass')
|
6
6
|
def initialize(options={})
|
7
7
|
@mapper = options[:mapper]
|
8
|
-
@session = ::
|
9
|
-
@spreadsheet =
|
8
|
+
@session = ::GoogleDrive.login(options[:login], options[:password])
|
9
|
+
@spreadsheet = find_spreadsheet(options[:key], options[:url], options[:title])
|
10
10
|
end
|
11
11
|
|
12
12
|
# Returns the first worksheet with given title
|
@@ -17,5 +17,14 @@ module SheetMapper
|
|
17
17
|
raise CollectionNotFound, "No worksheet found '#{val}'! Please try again." unless worksheet
|
18
18
|
Collection.new(self, worksheet)
|
19
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def find_spreadsheet(key, url, title)
|
23
|
+
raise ArgumentError, "No key, url or title specified for the spreadsheet" unless key || url || title
|
24
|
+
return @session.spreadsheet_by_url(url) if url
|
25
|
+
return @session.spreadsheet_by_title(title) if title
|
26
|
+
@session.spreadsheet_by_key(key)
|
27
|
+
end
|
28
|
+
|
20
29
|
end
|
21
30
|
end
|
data/lib/sheet_mapper/version.rb
CHANGED
data/sheet_mapper.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_dependency '
|
21
|
+
s.add_dependency 'google_drive', '>= 0.3.6'
|
22
22
|
|
23
23
|
s.add_development_dependency 'minitest', "~> 2.11.0"
|
24
24
|
s.add_development_dependency 'rake'
|
data/test/spreadsheet_test.rb
CHANGED
@@ -4,28 +4,26 @@ describe "Spreadsheet" do
|
|
4
4
|
setup do
|
5
5
|
@sheet_stub = stub(:sheet)
|
6
6
|
@session_stub = stub(:session)
|
7
|
-
|
8
|
-
::GoogleSpreadsheet.expects(:login).with('login', 'pass').returns(@session_stub)
|
7
|
+
::GoogleDrive.expects(:login).with('login', 'pass').returns(@session_stub)
|
9
8
|
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
[:key, :url, :title].each do |identifier|
|
11
|
+
context "for initialize by #{identifier}" do
|
12
|
+
setup do
|
13
|
+
@session_stub.expects(:"spreadsheet_by_#{identifier}").with('foo').returns(@sheet_stub)
|
14
|
+
@sheet = SheetMapper::Spreadsheet.new(:mapper => Object, identifier => 'foo', :login => 'login', :password => 'pass')
|
15
|
+
end
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
should "not return spreadsheet class" do
|
18
|
+
assert_kind_of SheetMapper::Spreadsheet, @sheet
|
19
|
+
end
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
assert_equal @session_stub, @sheet.session
|
23
|
-
assert_equal @sheet_stub, @sheet.spreadsheet
|
24
|
-
end
|
25
|
-
end # initialize
|
21
|
+
end # initialize
|
22
|
+
end
|
26
23
|
|
27
24
|
context "for find_collection_by_title method" do
|
28
25
|
setup do
|
26
|
+
@session_stub.expects(:spreadsheet_by_key).with('foo').returns(@sheet_stub)
|
29
27
|
@sheet = SheetMapper::Spreadsheet.new(:mapper => Object, :key => 'foo', :login => 'login', :password => 'pass')
|
30
28
|
@work_stub = stub(:worksheet)
|
31
29
|
@work_stub.expects(:title).returns("FOO")
|
metadata
CHANGED
@@ -1,120 +1,106 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sheet_mapper
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Nathan Esquenazi
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 21
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 2
|
32
|
-
- 1
|
33
|
-
version: 0.2.1
|
11
|
+
date: 2013-09-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: google_drive
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.3.6
|
34
20
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: minitest
|
38
21
|
prerelease: false
|
39
|
-
|
40
|
-
|
41
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.3.6
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
42
31
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 35
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 11
|
48
|
-
- 0
|
32
|
+
- !ruby/object:Gem::Version
|
49
33
|
version: 2.11.0
|
50
34
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rake
|
54
35
|
prerelease: false
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.11.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
64
48
|
type: :development
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: mocha
|
68
49
|
prerelease: false
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
78
62
|
type: :development
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: fakeweb
|
82
63
|
prerelease: false
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: fakeweb
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
92
76
|
type: :development
|
93
|
-
version_requirements: *id005
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: awesome_print
|
96
77
|
prerelease: false
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: awesome_print
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
106
90
|
type: :development
|
107
|
-
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
108
97
|
description: Map google spreadsheets to ruby objects.
|
109
|
-
email:
|
98
|
+
email:
|
110
99
|
- nesquena@gmail.com
|
111
100
|
executables: []
|
112
|
-
|
113
101
|
extensions: []
|
114
|
-
|
115
102
|
extra_rdoc_files: []
|
116
|
-
|
117
|
-
files:
|
103
|
+
files:
|
118
104
|
- .gitignore
|
119
105
|
- .travis.yml
|
120
106
|
- Gemfile
|
@@ -135,42 +121,33 @@ files:
|
|
135
121
|
- test/spreadsheet_test.rb
|
136
122
|
- test/test_config.rb
|
137
123
|
- test/test_helpers/mini_shoulda.rb
|
138
|
-
homepage:
|
124
|
+
homepage: ''
|
139
125
|
licenses: []
|
140
|
-
|
126
|
+
metadata: {}
|
141
127
|
post_install_message:
|
142
128
|
rdoc_options: []
|
143
|
-
|
144
|
-
require_paths:
|
129
|
+
require_paths:
|
145
130
|
- lib
|
146
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
none: false
|
157
|
-
requirements:
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
hash: 3
|
161
|
-
segments:
|
162
|
-
- 0
|
163
|
-
version: "0"
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
164
141
|
requirements: []
|
165
|
-
|
166
142
|
rubyforge_project: sheet_mapper
|
167
|
-
rubygems_version:
|
143
|
+
rubygems_version: 2.0.6
|
168
144
|
signing_key:
|
169
|
-
specification_version:
|
145
|
+
specification_version: 4
|
170
146
|
summary: Map google spreadsheets to ruby objects
|
171
|
-
test_files:
|
147
|
+
test_files:
|
172
148
|
- test/base_test.rb
|
173
149
|
- test/collection_test.rb
|
174
150
|
- test/spreadsheet_test.rb
|
175
151
|
- test/test_config.rb
|
176
152
|
- test/test_helpers/mini_shoulda.rb
|
153
|
+
has_rdoc:
|