roo 1.11.2 → 1.12.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.
@@ -5,17 +5,16 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "roo"
8
- s.version = "1.11.2"
8
+ s.version = "1.12.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Thomas Preymesser", "Hugh McGowan", "Ben Woosley"]
12
- s.date = "2013-04-10"
13
- s.description = "Roo can access the contents of various spreadsheet files. It can handle\n* Openoffice\n* Excel\n* Google spreadsheets\n* Excelx\n* Libreoffice\n* CSV"
12
+ s.date = "2013-08-18"
13
+ s.description = "Roo can access the contents of various spreadsheet files. It can handle\n* OpenOffice\n* Excel\n* Google spreadsheets\n* Excelx\n* LibreOffice\n* CSV"
14
14
  s.email = "ruby.ruby.ruby.roo@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.markdown",
18
- "TODO"
17
+ "README.markdown"
19
18
  ]
20
19
  s.files = [
21
20
  "CHANGELOG",
@@ -24,17 +23,16 @@ Gem::Specification.new do |s|
24
23
  "LICENSE",
25
24
  "README.markdown",
26
25
  "Rakefile",
27
- "TODO",
28
26
  "VERSION",
29
27
  "examples/roo_soap_client.rb",
30
28
  "examples/roo_soap_server.rb",
31
29
  "examples/write_me.rb",
32
30
  "lib/roo.rb",
31
+ "lib/roo/base.rb",
33
32
  "lib/roo/csv.rb",
34
33
  "lib/roo/excel.rb",
35
34
  "lib/roo/excel2003xml.rb",
36
35
  "lib/roo/excelx.rb",
37
- "lib/roo/generic_spreadsheet.rb",
38
36
  "lib/roo/google.rb",
39
37
  "lib/roo/openoffice.rb",
40
38
  "lib/roo/roo_rails_helper.rb",
@@ -42,13 +40,24 @@ Gem::Specification.new do |s|
42
40
  "lib/roo/worksheet.rb",
43
41
  "roo.gemspec",
44
42
  "scripts/txt2html",
43
+ "spec/fixtures/vcr_cassettes/google_drive.yml",
44
+ "spec/fixtures/vcr_cassettes/google_drive_access_token.yml",
45
+ "spec/lib/roo/base_spec.rb",
46
+ "spec/lib/roo/csv_spec.rb",
45
47
  "spec/lib/roo/excel2003xml_spec.rb",
48
+ "spec/lib/roo/excel_spec.rb",
46
49
  "spec/lib/roo/excelx/format_spec.rb",
50
+ "spec/lib/roo/excelx_spec.rb",
51
+ "spec/lib/roo/google_spec.rb",
52
+ "spec/lib/roo/libreoffice_spec.rb",
53
+ "spec/lib/roo/openoffice_spec.rb",
47
54
  "spec/lib/roo/spreadsheet_spec.rb",
48
55
  "spec/spec_helper.rb",
49
56
  "test/all_ss.rb",
50
57
  "test/files/1900_base.xls",
58
+ "test/files/1900_base.xlsx",
51
59
  "test/files/1904_base.xls",
60
+ "test/files/1904_base.xlsx",
52
61
  "test/files/Bibelbund.csv",
53
62
  "test/files/Bibelbund.ods",
54
63
  "test/files/Bibelbund.xls",
@@ -165,7 +174,7 @@ Gem::Specification.new do |s|
165
174
  s.rubyforge_project = "roo"
166
175
  s.rubygems_version = "1.8.24"
167
176
  s.summary = "Roo can access the contents of various spreadsheet files."
168
- s.test_files = ["spec/lib/roo/excel2003xml_spec.rb", "spec/lib/roo/excelx/format_spec.rb", "spec/lib/roo/spreadsheet_spec.rb", "spec/spec_helper.rb", "test/all_ss.rb", "test/files/1900_base.xls", "test/files/1904_base.xls", "test/files/bad_excel_date.xls", "test/files/bbu.ods", "test/files/bbu.xls", "test/files/bbu.xlsx", "test/files/bbu.xml", "test/files/Bibelbund.csv", "test/files/Bibelbund.ods", "test/files/Bibelbund.xls", "test/files/Bibelbund.xlsx", "test/files/Bibelbund.xml", "test/files/Bibelbund1.ods", "test/files/bode-v1.ods.zip", "test/files/bode-v1.xls.zip", "test/files/boolean.ods", "test/files/boolean.xls", "test/files/boolean.xlsx", "test/files/boolean.xml", "test/files/borders.ods", "test/files/borders.xls", "test/files/borders.xlsx", "test/files/borders.xml", "test/files/bug-row-column-fixnum-float.xls", "test/files/bug-row-column-fixnum-float.xml", "test/files/comments.ods", "test/files/comments.xls", "test/files/comments.xlsx", "test/files/csvtypes.csv", "test/files/datetime.ods", "test/files/datetime.xls", "test/files/datetime.xlsx", "test/files/datetime.xml", "test/files/datetime_floatconv.xls", "test/files/datetime_floatconv.xml", "test/files/dreimalvier.ods", "test/files/emptysheets.ods", "test/files/emptysheets.xls", "test/files/emptysheets.xlsx", "test/files/emptysheets.xml", "test/files/excel2003.xml", "test/files/false_encoding.xls", "test/files/false_encoding.xml", "test/files/formula.ods", "test/files/formula.xls", "test/files/formula.xlsx", "test/files/formula.xml", "test/files/formula_parse_error.xls", "test/files/formula_parse_error.xml", "test/files/formula_string_error.xlsx", "test/files/html-escape.ods", "test/files/matrix.ods", "test/files/matrix.xls", "test/files/named_cells.ods", "test/files/named_cells.xls", "test/files/named_cells.xlsx", "test/files/no_spreadsheet_file.txt", "test/files/numbers1.csv", "test/files/numbers1.ods", "test/files/numbers1.xls", "test/files/numbers1.xlsx", "test/files/numbers1.xml", "test/files/only_one_sheet.ods", "test/files/only_one_sheet.xls", "test/files/only_one_sheet.xlsx", "test/files/only_one_sheet.xml", "test/files/paragraph.ods", "test/files/paragraph.xls", "test/files/paragraph.xlsx", "test/files/paragraph.xml", "test/files/Pfand_from_windows_phone.xlsx", "test/files/prova.xls", "test/files/ric.ods", "test/files/simple_spreadsheet.ods", "test/files/simple_spreadsheet.xls", "test/files/simple_spreadsheet.xlsx", "test/files/simple_spreadsheet.xml", "test/files/simple_spreadsheet_from_italo.ods", "test/files/simple_spreadsheet_from_italo.xls", "test/files/simple_spreadsheet_from_italo.xml", "test/files/so_datetime.csv", "test/files/style.ods", "test/files/style.xls", "test/files/style.xlsx", "test/files/style.xml", "test/files/time-test.csv", "test/files/time-test.ods", "test/files/time-test.xls", "test/files/time-test.xlsx", "test/files/time-test.xml", "test/files/type_excel.ods", "test/files/type_excel.xlsx", "test/files/type_excelx.ods", "test/files/type_excelx.xls", "test/files/type_openoffice.xls", "test/files/type_openoffice.xlsx", "test/files/whitespace.ods", "test/files/whitespace.xls", "test/files/whitespace.xlsx", "test/files/whitespace.xml", "test/rm_sub_test.rb", "test/rm_test.rb", "test/test_generic_spreadsheet.rb", "test/test_helper.rb", "test/test_roo.rb"]
177
+ s.test_files = ["spec/fixtures/vcr_cassettes/google_drive.yml", "spec/fixtures/vcr_cassettes/google_drive_access_token.yml", "spec/lib/roo/base_spec.rb", "spec/lib/roo/csv_spec.rb", "spec/lib/roo/excel2003xml_spec.rb", "spec/lib/roo/excel_spec.rb", "spec/lib/roo/excelx/format_spec.rb", "spec/lib/roo/excelx_spec.rb", "spec/lib/roo/google_spec.rb", "spec/lib/roo/libreoffice_spec.rb", "spec/lib/roo/openoffice_spec.rb", "spec/lib/roo/spreadsheet_spec.rb", "spec/spec_helper.rb", "test/all_ss.rb", "test/files/1900_base.xls", "test/files/1900_base.xlsx", "test/files/1904_base.xls", "test/files/1904_base.xlsx", "test/files/bad_excel_date.xls", "test/files/bbu.ods", "test/files/bbu.xls", "test/files/bbu.xlsx", "test/files/bbu.xml", "test/files/Bibelbund.csv", "test/files/Bibelbund.ods", "test/files/Bibelbund.xls", "test/files/Bibelbund.xlsx", "test/files/Bibelbund.xml", "test/files/Bibelbund1.ods", "test/files/bode-v1.ods.zip", "test/files/bode-v1.xls.zip", "test/files/boolean.ods", "test/files/boolean.xls", "test/files/boolean.xlsx", "test/files/boolean.xml", "test/files/borders.ods", "test/files/borders.xls", "test/files/borders.xlsx", "test/files/borders.xml", "test/files/bug-row-column-fixnum-float.xls", "test/files/bug-row-column-fixnum-float.xml", "test/files/comments.ods", "test/files/comments.xls", "test/files/comments.xlsx", "test/files/csvtypes.csv", "test/files/datetime.ods", "test/files/datetime.xls", "test/files/datetime.xlsx", "test/files/datetime.xml", "test/files/datetime_floatconv.xls", "test/files/datetime_floatconv.xml", "test/files/dreimalvier.ods", "test/files/emptysheets.ods", "test/files/emptysheets.xls", "test/files/emptysheets.xlsx", "test/files/emptysheets.xml", "test/files/excel2003.xml", "test/files/false_encoding.xls", "test/files/false_encoding.xml", "test/files/formula.ods", "test/files/formula.xls", "test/files/formula.xlsx", "test/files/formula.xml", "test/files/formula_parse_error.xls", "test/files/formula_parse_error.xml", "test/files/formula_string_error.xlsx", "test/files/html-escape.ods", "test/files/matrix.ods", "test/files/matrix.xls", "test/files/named_cells.ods", "test/files/named_cells.xls", "test/files/named_cells.xlsx", "test/files/no_spreadsheet_file.txt", "test/files/numbers1.csv", "test/files/numbers1.ods", "test/files/numbers1.xls", "test/files/numbers1.xlsx", "test/files/numbers1.xml", "test/files/only_one_sheet.ods", "test/files/only_one_sheet.xls", "test/files/only_one_sheet.xlsx", "test/files/only_one_sheet.xml", "test/files/paragraph.ods", "test/files/paragraph.xls", "test/files/paragraph.xlsx", "test/files/paragraph.xml", "test/files/Pfand_from_windows_phone.xlsx", "test/files/prova.xls", "test/files/ric.ods", "test/files/simple_spreadsheet.ods", "test/files/simple_spreadsheet.xls", "test/files/simple_spreadsheet.xlsx", "test/files/simple_spreadsheet.xml", "test/files/simple_spreadsheet_from_italo.ods", "test/files/simple_spreadsheet_from_italo.xls", "test/files/simple_spreadsheet_from_italo.xml", "test/files/so_datetime.csv", "test/files/style.ods", "test/files/style.xls", "test/files/style.xlsx", "test/files/style.xml", "test/files/time-test.csv", "test/files/time-test.ods", "test/files/time-test.xls", "test/files/time-test.xlsx", "test/files/time-test.xml", "test/files/type_excel.ods", "test/files/type_excel.xlsx", "test/files/type_excelx.ods", "test/files/type_excelx.xls", "test/files/type_openoffice.xls", "test/files/type_openoffice.xlsx", "test/files/whitespace.ods", "test/files/whitespace.xls", "test/files/whitespace.xlsx", "test/files/whitespace.xml", "test/rm_sub_test.rb", "test/rm_test.rb", "test/test_generic_spreadsheet.rb", "test/test_helper.rb", "test/test_roo.rb"]
169
178
 
170
179
  if s.respond_to? :specification_version then
171
180
  s.specification_version = 3
@@ -174,17 +183,20 @@ Gem::Specification.new do |s|
174
183
  s.add_runtime_dependency(%q<spreadsheet>, ["> 0.6.4"])
175
184
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
176
185
  s.add_runtime_dependency(%q<rubyzip>, [">= 0"])
186
+ s.add_development_dependency(%q<google_drive>, [">= 0"])
177
187
  s.add_development_dependency(%q<jeweler>, [">= 0"])
178
188
  else
179
189
  s.add_dependency(%q<spreadsheet>, ["> 0.6.4"])
180
190
  s.add_dependency(%q<nokogiri>, [">= 0"])
181
191
  s.add_dependency(%q<rubyzip>, [">= 0"])
192
+ s.add_dependency(%q<google_drive>, [">= 0"])
182
193
  s.add_dependency(%q<jeweler>, [">= 0"])
183
194
  end
184
195
  else
185
196
  s.add_dependency(%q<spreadsheet>, ["> 0.6.4"])
186
197
  s.add_dependency(%q<nokogiri>, [">= 0"])
187
198
  s.add_dependency(%q<rubyzip>, [">= 0"])
199
+ s.add_dependency(%q<google_drive>, [">= 0"])
188
200
  s.add_dependency(%q<jeweler>, [">= 0"])
189
201
  end
190
202
  end
@@ -0,0 +1,165 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.google.com/accounts/ClientLogin
6
+ body:
7
+ encoding: UTF-8
8
+ string: accountType=HOSTED_OR_GOOGLE&Email=user&Passwd=password&service=wise&source=Gimite-RubyGoogleDrive-1.00
9
+ headers:
10
+ Content-Type:
11
+ - application/x-www-form-urlencoded
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - text/plain
25
+ Cache-Control:
26
+ - no-cache, no-store
27
+ Pragma:
28
+ - no-cache
29
+ Expires:
30
+ - Mon, 01-Jan-1990 00:00:00 GMT
31
+ Date:
32
+ - Thu, 15 Aug 2013 00:43:34 GMT
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Xss-Protection:
36
+ - 1; mode=block
37
+ Content-Length:
38
+ - '881'
39
+ Server:
40
+ - GSE
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ SID=DQAAAMoAAAA8IKlqi2aGAAGTzd6pCfMwqwabb79_cvhermJV2M78CNvpiYiujQEkQMienaye4SnKIV-oS6r6KEdGp46SZy5radXnkV5pxGSHLWvExZh7pGH7o3cgmvF8N3WX_FWdGQatg_-ypztq4tgHb_E3wlQtRmT1snh8lqVDIqoaXXdlQJ_WKvgPW8NBAOQBMsnb2fV0FX2abuth0DzS6t9gpR_f-1w8d8jI7rwgBhVg0PxxHPUJMnciPDaEjK3WxLj-zGgPCZfr6vBG8asFAjFzCDYO
45
+ LSID=DQAAAMsAAADMWltQuejlYd78Px9RfXhcHnb7tlPHfKPY4i69F9Hi0dhIQbyFRlHVcyMKaR3ajpm39Tx27o5qgddVcti2kZ3CoOB6bthhPlKls7s4G9nz8ObyHSilTTNP5tjNdNNz0--4NP9lacZ-UHhKoDGKnH6lgKFi6BaCAHpQzXo-vsvStxXqo0D1OE81zL2UOYRvN1rc9evr04qtlSvCHQ8THv7eH8SGwZrdf_okjtKQDyLaEJFn5d0_YP-CiM1JLNyNtjwk6E3cWEi8NUrZh459-Lif
46
+ Auth=DQAAAMwAAADMWltQuejlYd78Px9RfXhcHnb7tlPHfKPY4i69F9Hi0dhIQbyFRlHVcyMKaR3ajpn7yZLj-g3LYQk1SM-i9ejg3r4yH0rj9yZsBcy0ZiJV1L45w4jGXlgrvse68D5axixvDp7T7u6P6K-eOJj2SaKw8vBj156hBEyn4CQFJ0tVUjl5UPAN9Wt8hJmRNqULG3LoxYwLidLgPVjCtL-lF0YnUiSwbolVBzZAbyeYk1QSzX9xT5ms3sTQ4ESz42Bg9SQbc6kdlcWzvmQ_sO5GfrTY
47
+ http_version:
48
+ recorded_at: Thu, 15 Aug 2013 00:43:35 GMT
49
+ - request:
50
+ method: post
51
+ uri: https://www.google.com/accounts/ClientLogin
52
+ body:
53
+ encoding: UTF-8
54
+ string: accountType=HOSTED_OR_GOOGLE&Email=user&Passwd=password&service=writely&source=Gimite-RubyGoogleDrive-1.00
55
+ headers:
56
+ Content-Type:
57
+ - application/x-www-form-urlencoded
58
+ Accept-Encoding:
59
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
60
+ Accept:
61
+ - '*/*'
62
+ User-Agent:
63
+ - Ruby
64
+ response:
65
+ status:
66
+ code: 200
67
+ message: OK
68
+ headers:
69
+ Content-Type:
70
+ - text/plain
71
+ Cache-Control:
72
+ - no-cache, no-store
73
+ Pragma:
74
+ - no-cache
75
+ Expires:
76
+ - Mon, 01-Jan-1990 00:00:00 GMT
77
+ Date:
78
+ - Thu, 15 Aug 2013 00:43:35 GMT
79
+ X-Content-Type-Options:
80
+ - nosniff
81
+ X-Xss-Protection:
82
+ - 1; mode=block
83
+ Content-Length:
84
+ - '881'
85
+ Server:
86
+ - GSE
87
+ body:
88
+ encoding: UTF-8
89
+ string: |
90
+ SID=DQAAAMkAAADzBWY1u2YIJ65CWCMcGU45anMr2oknuts_SHI6BUKE9_XcnpF9Cd3LEx3nEwj8BWT4VYJSYCLMHj7PRTnT8y3L1qbs6kVLocXDqMDfPiZGI199x7RIoxNTJm6h6eS1oWnHOJ2ap_TgHSrPLYiIzt-Ajlb2R8fciXwyJM2G1BbiB66BOGQzGd1GPiCWB5cEVzRDRAlF_FKF9tS89XKdMwSBaNQQmYvs8rhWwGew6g4bGk5j2YGQzCfQARBJR-RIP1P6grQKKk50RlQViCy289AQ
91
+ LSID=DQAAAMsAAAD6x-FEGLu8C22vipJ5KzJRieLdSnd-bxlIF6iewUK4s-DUIlBl9TXOzWxUby3siw_0s_CVXjDO-0eCpUqlDSr9bTK4Z97xboEkx3TAltwZ7rfidhhx1kKEPV6wLyEqQsxLuF58kMGxPneo1ohb9wdBx6019XMG_N_R2npslywmtJSjKeZUFCNhcIOxD3kDjRFOhU9zqTiPguvKGA1QvT8xr2GdUVGNBRH9Xz4XQzth4Pj0Q01Qow0EzOwTp9uCYf1mvf_dQVSpGnTHL3Srv7gH
92
+ Auth=DQAAAMwAAAD6x-FEGLu8C22vipJ5KzJRieLdSnd-bxlIF6iewUK4s-DUIlBl9TXOzWxUby3siw-4fXJ3tHBJ8XUfzqBe5HXc1vMlzuIPmM7yDOXBV2Jdp4c1hqIn08tfgZOkFH0F1WBpS6UqB3xBOyTZWwdT4ULLHi9fnLEjn8hE_FwnSzKf2YxezpuLbuTR6wlJI8xnXTP2s_hZDfRlr-UYS7OTr8G50beHZtGDgbFDAAEPr21TU_VsQmPBSz5frybOZ0MAbYnOi-zrV-ogwk6fIP6fI7EW
93
+ http_version:
94
+ recorded_at: Thu, 15 Aug 2013 00:43:35 GMT
95
+ - request:
96
+ method: get
97
+ uri: https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full
98
+ body:
99
+ encoding: US-ASCII
100
+ string: ''
101
+ headers:
102
+ Authorization:
103
+ - GoogleLogin auth=DQAAAMwAAADMWltQuejlYd78Px9RfXhcHnb7tlPHfKPY4i69F9Hi0dhIQbyFRlHVcyMKaR3ajpn7yZLj-g3LYQk1SM-i9ejg3r4yH0rj9yZsBcy0ZiJV1L45w4jGXlgrvse68D5axixvDp7T7u6P6K-eOJj2SaKw8vBj156hBEyn4CQFJ0tVUjl5UPAN9Wt8hJmRNqULG3LoxYwLidLgPVjCtL-lF0YnUiSwbolVBzZAbyeYk1QSzX9xT5ms3sTQ4ESz42Bg9SQbc6kdlcWzvmQ_sO5GfrTY
104
+ Accept-Encoding:
105
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
106
+ Accept:
107
+ - '*/*'
108
+ User-Agent:
109
+ - Ruby
110
+ response:
111
+ status:
112
+ code: 200
113
+ message: OK
114
+ headers:
115
+ Content-Type:
116
+ - application/atom+xml; charset=UTF-8
117
+ Expires:
118
+ - Thu, 15 Aug 2013 00:43:35 GMT
119
+ Date:
120
+ - Thu, 15 Aug 2013 00:43:35 GMT
121
+ Cache-Control:
122
+ - private, max-age=0, must-revalidate, no-transform
123
+ Vary:
124
+ - Accept, X-GData-Authorization, GData-Version
125
+ Gdata-Version:
126
+ - '1.0'
127
+ Last-Modified:
128
+ - Wed, 14 Aug 2013 23:58:45 GMT
129
+ Set-Cookie:
130
+ - NID=67=WgYgh5rhvD-JfsREiq1hlwTrGNEKfKnyUBpIGER1YFhlyyhT9BNfI6L1oLVMRz1vqOVUpZxR9HZYItza622-_uOnkfbvdqytSMRP9bHkJhMM-Wk6Y0u1KpKfIaUagmxb;Domain=.google.com;Path=/;Expires=Fri,
131
+ 14-Feb-2014 00:43:35 GMT;HttpOnly
132
+ P3p:
133
+ - CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657
134
+ for more info."
135
+ X-Content-Type-Options:
136
+ - nosniff
137
+ X-Frame-Options:
138
+ - SAMEORIGIN
139
+ X-Xss-Protection:
140
+ - 1; mode=block
141
+ Server:
142
+ - GSE
143
+ Transfer-Encoding:
144
+ - chunked
145
+ body:
146
+ encoding: UTF-8
147
+ string: <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom'
148
+ xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gs='http://schemas.google.com/spreadsheets/2006'><id>https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full</id><updated>2013-08-14T23:58:45.821Z</updated><category
149
+ scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title
150
+ type='text'>Test</title><link rel='alternate' type='text/html' href='https://spreadsheets.google.com/ccc?key=0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c'/><link
151
+ rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><link
152
+ rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><link
153
+ rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><author><name>cecillemanalang</name><email>cecillemanalang@gmail.com</email></author><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6</id><updated>2013-08-14T23:58:45.821Z</updated><category
154
+ scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title
155
+ type='text'>Sheet1</title><content type='text'>Sheet1</content><link rel='http://schemas.google.com/spreadsheets/2006#listfeed'
156
+ type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/od6/private/full'/><link
157
+ rel='http://schemas.google.com/spreadsheets/2006#cellsfeed' type='application/atom+xml'
158
+ href='https://spreadsheets.google.com/feeds/cells/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/od6/private/full'/><link
159
+ rel='http://schemas.google.com/visualization/2008#visualizationApi' type='application/atom+xml'
160
+ href='https://spreadsheets.google.com/tq?key=0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c&amp;sheet=od6'/><link
161
+ rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6'/><link
162
+ rel='edit' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6/0'/><gs:rowCount>100</gs:rowCount><gs:colCount>20</gs:colCount></entry></feed>
163
+ http_version:
164
+ recorded_at: Thu, 15 Aug 2013 00:43:36 GMT
165
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,73 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer ya29.AHES6ZR1kGjlmlLJG9skjpO0IjzQ6qDohXwFJclzD7mHI9xa-cFzlg
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/atom+xml; charset=UTF-8
25
+ Expires:
26
+ - Thu, 15 Aug 2013 04:00:09 GMT
27
+ Date:
28
+ - Thu, 15 Aug 2013 04:00:09 GMT
29
+ Cache-Control:
30
+ - private, max-age=0, must-revalidate, no-transform
31
+ Vary:
32
+ - Accept, X-GData-Authorization, GData-Version
33
+ Gdata-Version:
34
+ - '1.0'
35
+ Last-Modified:
36
+ - Wed, 14 Aug 2013 23:58:45 GMT
37
+ Set-Cookie:
38
+ - NID=67=D_rMebxz1goCYPpOwOoQ0-aPMBQZeyMKudylvS2tIjwbMutBHnzJI57QMteOlIww8SWXXxkrak_-8SQ2RevOOV9ENC4we-6hR0LM_vRnbxPkAAqtkyaWtVgyNbCkAy4k;Domain=.google.com;Path=/;Expires=Fri,
39
+ 14-Feb-2014 04:00:09 GMT;HttpOnly
40
+ P3p:
41
+ - CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657
42
+ for more info."
43
+ X-Content-Type-Options:
44
+ - nosniff
45
+ X-Frame-Options:
46
+ - SAMEORIGIN
47
+ X-Xss-Protection:
48
+ - 1; mode=block
49
+ Server:
50
+ - GSE
51
+ Transfer-Encoding:
52
+ - chunked
53
+ body:
54
+ encoding: UTF-8
55
+ string: <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom'
56
+ xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gs='http://schemas.google.com/spreadsheets/2006'><id>https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full</id><updated>2013-08-14T23:58:45.821Z</updated><category
57
+ scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title
58
+ type='text'>Test</title><link rel='alternate' type='text/html' href='https://spreadsheets.google.com/ccc?key=0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c'/><link
59
+ rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><link
60
+ rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><link
61
+ rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full'/><author><name>cecillemanalang</name><email>cecillemanalang@gmail.com</email></author><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6</id><updated>2013-08-14T23:58:45.821Z</updated><category
62
+ scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title
63
+ type='text'>Sheet1</title><content type='text'>Sheet1</content><link rel='http://schemas.google.com/spreadsheets/2006#listfeed'
64
+ type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/od6/private/full'/><link
65
+ rel='http://schemas.google.com/spreadsheets/2006#cellsfeed' type='application/atom+xml'
66
+ href='https://spreadsheets.google.com/feeds/cells/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/od6/private/full'/><link
67
+ rel='http://schemas.google.com/visualization/2008#visualizationApi' type='application/atom+xml'
68
+ href='https://spreadsheets.google.com/tq?key=0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c&amp;sheet=od6'/><link
69
+ rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6'/><link
70
+ rel='edit' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c/private/full/od6/0'/><gs:rowCount>100</gs:rowCount><gs:colCount>20</gs:colCount></entry></feed>
71
+ http_version:
72
+ recorded_at: Thu, 15 Aug 2013 04:00:09 GMT
73
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Roo::GenericSpreadsheet do
4
+ it 'is an alias of Base' do
5
+ expect(Roo::GenericSpreadsheet).to eq(Roo::Base)
6
+ end
7
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe Roo::CSV do
4
+ let(:path) { 'test/files/csvtypes.csv' }
5
+ let(:csv) { Roo::CSV.new(path) }
6
+
7
+ describe '.new' do
8
+ it 'creates an instance' do
9
+ expect(csv).to be_a(Roo::CSV)
10
+ end
11
+ end
12
+
13
+ describe '#parse' do
14
+ subject {
15
+ csv.parse(options)
16
+ }
17
+ context 'with headers: true' do
18
+ let(:options) { {headers: true} }
19
+
20
+ it "doesn't blow up" do
21
+ expect { subject }.to_not raise_error
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#csv_options' do
27
+ context 'when created with the csv_options option' do
28
+ let(:options) {
29
+ {
30
+ col_sep: '\t',
31
+ quote_char: "'"
32
+ }
33
+ }
34
+
35
+ it 'returns the csv options' do
36
+ csv = Roo::CSV.new(path, csv_options: options)
37
+ csv.csv_options.should == options
38
+ end
39
+ end
40
+
41
+ context 'when created without the csv_options option' do
42
+ it 'returns a hash' do
43
+ csv = Roo::CSV.new(path)
44
+ csv.csv_options.should == {}
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ describe Roo::Csv do
51
+ it 'is an alias of LibreOffice' do
52
+ expect(Roo::Csv).to eq(Roo::CSV)
53
+ end
54
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Roo::Excel do
4
+ let(:excel) { Roo::Excel.new('test/files/boolean.xls') }
5
+
6
+ describe '.new' do
7
+ it 'creates an instance' do
8
+ expect(excel).to be_a(Roo::Excel)
9
+ end
10
+ end
11
+
12
+ describe '#sheets' do
13
+ it 'returns the sheet names of the file' do
14
+ expect(excel.sheets).to eq(["Sheet1", "Sheet2", "Sheet3"])
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Roo::Excelx do
4
+ describe '.new' do
5
+ subject {
6
+ Roo::Excelx.new('test/files/numbers1.xlsx')
7
+ }
8
+
9
+ it 'creates an instance' do
10
+ expect(subject).to be_a(Roo::Excelx)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Roo::Google do
4
+ let(:key) { '0AiokXJytm-hjdDhYbTNvZ3pDWm9oZm9yWURLX3ZoR2c' }
5
+
6
+ describe '.new' do
7
+ context 'given a username and password' do
8
+ let(:user) { 'user' }
9
+ let(:password) { 'password' }
10
+
11
+ subject {
12
+ Roo::Google.new(key, user: user, password: password)
13
+ }
14
+
15
+ it 'creates an instance' do
16
+ VCR.use_cassette('google_drive') do
17
+ expect(subject).to be_a(Roo::Google)
18
+ end
19
+ end
20
+ end
21
+
22
+ context 'given an access token' do
23
+ let(:access_token) { 'ya29.AHES6ZR1kGjlmlLJG9skjpO0IjzQ6qDohXwFJclzD7mHI9xa-cFzlg' }
24
+
25
+ subject {
26
+ Roo::Google.new(key, access_token: access_token)
27
+ }
28
+
29
+ it 'creates an instance' do
30
+ VCR.use_cassette('google_drive_access_token') do
31
+ expect(subject).to be_a(Roo::Google)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end