roo-andyw8 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.simplecov +4 -0
- data/.travis.yml +13 -0
- data/CHANGELOG +438 -0
- data/Gemfile +24 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/README.md +121 -0
- data/Rakefile +23 -0
- data/examples/roo_soap_client.rb +50 -0
- data/examples/roo_soap_server.rb +26 -0
- data/examples/write_me.rb +31 -0
- data/lib/roo.rb +28 -0
- data/lib/roo/base.rb +717 -0
- data/lib/roo/csv.rb +110 -0
- data/lib/roo/excelx.rb +540 -0
- data/lib/roo/excelx/comments.rb +23 -0
- data/lib/roo/excelx/extractor.rb +20 -0
- data/lib/roo/excelx/relationships.rb +26 -0
- data/lib/roo/excelx/shared_strings.rb +40 -0
- data/lib/roo/excelx/sheet_doc.rb +175 -0
- data/lib/roo/excelx/styles.rb +62 -0
- data/lib/roo/excelx/workbook.rb +59 -0
- data/lib/roo/font.rb +17 -0
- data/lib/roo/libre_office.rb +5 -0
- data/lib/roo/link.rb +15 -0
- data/lib/roo/open_office.rb +652 -0
- data/lib/roo/spreadsheet.rb +31 -0
- data/lib/roo/utils.rb +81 -0
- data/lib/roo/version.rb +3 -0
- data/roo.gemspec +27 -0
- data/scripts/txt2html +67 -0
- data/spec/fixtures/vcr_cassettes/google_drive.yml +165 -0
- data/spec/fixtures/vcr_cassettes/google_drive_access_token.yml +73 -0
- data/spec/fixtures/vcr_cassettes/google_drive_set.yml +857 -0
- data/spec/lib/roo/base_spec.rb +4 -0
- data/spec/lib/roo/csv_spec.rb +48 -0
- data/spec/lib/roo/excelx/format_spec.rb +51 -0
- data/spec/lib/roo/excelx_spec.rb +363 -0
- data/spec/lib/roo/libreoffice_spec.rb +13 -0
- data/spec/lib/roo/openoffice_spec.rb +15 -0
- data/spec/lib/roo/spreadsheet_spec.rb +88 -0
- data/spec/lib/roo/utils_spec.rb +105 -0
- data/spec/spec_helper.rb +9 -0
- data/test/all_ss.rb +11 -0
- data/test/files/1900_base.xlsx +0 -0
- data/test/files/1904_base.xlsx +0 -0
- data/test/files/Bibelbund.csv +3741 -0
- data/test/files/Bibelbund.ods +0 -0
- data/test/files/Bibelbund.xlsx +0 -0
- data/test/files/Bibelbund1.ods +0 -0
- data/test/files/Pfand_from_windows_phone.xlsx +0 -0
- data/test/files/advanced_header.ods +0 -0
- data/test/files/bbu.ods +0 -0
- data/test/files/bbu.xlsx +0 -0
- data/test/files/bode-v1.ods.zip +0 -0
- data/test/files/bode-v1.xls.zip +0 -0
- data/test/files/boolean.csv +2 -0
- data/test/files/boolean.ods +0 -0
- data/test/files/boolean.xlsx +0 -0
- data/test/files/borders.ods +0 -0
- data/test/files/borders.xlsx +0 -0
- data/test/files/bug-numbered-sheet-names.xlsx +0 -0
- data/test/files/comments.ods +0 -0
- data/test/files/comments.xlsx +0 -0
- data/test/files/csvtypes.csv +1 -0
- data/test/files/datetime.ods +0 -0
- data/test/files/datetime.xlsx +0 -0
- data/test/files/dreimalvier.ods +0 -0
- data/test/files/emptysheets.ods +0 -0
- data/test/files/emptysheets.xlsx +0 -0
- data/test/files/encrypted-letmein.ods +0 -0
- data/test/files/file_item_error.xlsx +0 -0
- data/test/files/formula.ods +0 -0
- data/test/files/formula.xlsx +0 -0
- data/test/files/formula_string_error.xlsx +0 -0
- data/test/files/html-escape.ods +0 -0
- data/test/files/link.csv +1 -0
- data/test/files/link.xlsx +0 -0
- data/test/files/matrix.ods +0 -0
- data/test/files/named_cells.ods +0 -0
- data/test/files/named_cells.xlsx +0 -0
- data/test/files/no_spreadsheet_file.txt +1 -0
- data/test/files/numbers-export.xlsx +0 -0
- data/test/files/numbers1.csv +18 -0
- data/test/files/numbers1.ods +0 -0
- data/test/files/numbers1.xlsx +0 -0
- data/test/files/numbers1withnull.xlsx +0 -0
- data/test/files/numeric-link.xlsx +0 -0
- data/test/files/only_one_sheet.ods +0 -0
- data/test/files/only_one_sheet.xlsx +0 -0
- data/test/files/paragraph.ods +0 -0
- data/test/files/paragraph.xlsx +0 -0
- data/test/files/ric.ods +0 -0
- data/test/files/sheet1.xml +109 -0
- data/test/files/simple_spreadsheet.ods +0 -0
- data/test/files/simple_spreadsheet.xlsx +0 -0
- data/test/files/simple_spreadsheet_from_italo.ods +0 -0
- data/test/files/so_datetime.csv +8 -0
- data/test/files/style.ods +0 -0
- data/test/files/style.xlsx +0 -0
- data/test/files/time-test.csv +2 -0
- data/test/files/time-test.ods +0 -0
- data/test/files/time-test.xlsx +0 -0
- data/test/files/type_excel.ods +0 -0
- data/test/files/type_excel.xlsx +0 -0
- data/test/files/type_excelx.ods +0 -0
- data/test/files/type_openoffice.xlsx +0 -0
- data/test/files/whitespace.ods +0 -0
- data/test/files/whitespace.xlsx +0 -0
- data/test/test_generic_spreadsheet.rb +211 -0
- data/test/test_helper.rb +58 -0
- data/test/test_roo.rb +1977 -0
- metadata +318 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
module Roo
|
2
|
+
class Spreadsheet
|
3
|
+
class << self
|
4
|
+
def open(path, options = {})
|
5
|
+
path = path.respond_to?(:path) ? path.path : path
|
6
|
+
extension = extension_for(path, options)
|
7
|
+
|
8
|
+
begin
|
9
|
+
Roo::CLASS_FOR_EXTENSION.fetch(extension).new(path, options)
|
10
|
+
rescue KeyError
|
11
|
+
raise ArgumentError,
|
12
|
+
"Can't detect the type of #{path} - please use the :extension option to declare its type."
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def extension_for(path, options)
|
17
|
+
case (extension = options.delete(:extension))
|
18
|
+
when ::Symbol
|
19
|
+
options[:file_warning] = :ignore
|
20
|
+
extension
|
21
|
+
when ::String
|
22
|
+
options[:file_warning] = :ignore
|
23
|
+
extension.tr('.', '').downcase.to_sym
|
24
|
+
else
|
25
|
+
res = ::File.extname((path =~ ::URI.regexp) ? ::URI.parse(::URI.encode(path)).path : path)
|
26
|
+
res.tr('.', '').downcase.to_sym
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/roo/utils.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
module Roo
|
2
|
+
module Utils
|
3
|
+
extend self
|
4
|
+
LETTERS = ('A'..'Z').to_a
|
5
|
+
def split_coordinate(str)
|
6
|
+
letter, number = split_coord(str)
|
7
|
+
x = letter_to_number(letter)
|
8
|
+
y = number
|
9
|
+
[y, x]
|
10
|
+
end
|
11
|
+
|
12
|
+
alias_method :ref_to_key, :split_coordinate
|
13
|
+
|
14
|
+
def split_coord(s)
|
15
|
+
if s =~ /([a-zA-Z]+)([0-9]+)/
|
16
|
+
letter = Regexp.last_match[1]
|
17
|
+
number = Regexp.last_match[2].to_i
|
18
|
+
else
|
19
|
+
fail ArgumentError
|
20
|
+
end
|
21
|
+
[letter, number]
|
22
|
+
end
|
23
|
+
|
24
|
+
# convert a number to something like 'AB' (1 => 'A', 2 => 'B', ...)
|
25
|
+
def number_to_letter(n)
|
26
|
+
letters = ''
|
27
|
+
if n > 26
|
28
|
+
while n % 26 == 0 && n != 0
|
29
|
+
letters << 'Z'
|
30
|
+
n = ((n - 26) / 26).to_i
|
31
|
+
end
|
32
|
+
while n > 0
|
33
|
+
num = n % 26
|
34
|
+
letters = LETTERS[num - 1] + letters
|
35
|
+
n = (n / 26).to_i
|
36
|
+
end
|
37
|
+
else
|
38
|
+
letters = LETTERS[n - 1]
|
39
|
+
end
|
40
|
+
letters
|
41
|
+
end
|
42
|
+
|
43
|
+
# convert letters like 'AB' to a number ('A' => 1, 'B' => 2, ...)
|
44
|
+
def letter_to_number(letters)
|
45
|
+
result = 0
|
46
|
+
while letters && letters.length > 0
|
47
|
+
character = letters[0, 1].upcase
|
48
|
+
num = LETTERS.index(character)
|
49
|
+
fail ArgumentError, "invalid column character '#{letters[0, 1]}'" if num.nil?
|
50
|
+
num += 1
|
51
|
+
result = result * 26 + num
|
52
|
+
letters = letters[1..-1]
|
53
|
+
end
|
54
|
+
result
|
55
|
+
end
|
56
|
+
|
57
|
+
# Compute upper bound for cells in a given cell range.
|
58
|
+
def self.num_cells_in_range(str)
|
59
|
+
cells = str.split(':')
|
60
|
+
return 1 if cells.count == 1
|
61
|
+
raise ArgumentError.new("invalid range string: #{str}. Supported range format 'A1:B2'") if cells.count != 2
|
62
|
+
x1, y1 = split_coordinate(cells[0])
|
63
|
+
x2, y2 = split_coordinate(cells[1])
|
64
|
+
(x2 - (x1 - 1)) * (y2 - (y1 - 1))
|
65
|
+
end
|
66
|
+
|
67
|
+
def load_xml(path)
|
68
|
+
::File.open(path, 'rb') do |file|
|
69
|
+
::Nokogiri::XML(file)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# Yield each element of a given type ('row', 'c', etc.) to caller
|
74
|
+
def each_element(path, elements)
|
75
|
+
Nokogiri::XML::Reader(::File.open(path, 'rb'), nil, nil, Nokogiri::XML::ParseOptions::NOBLANKS).each do |node|
|
76
|
+
next unless node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT && Array(elements).include?(node.name)
|
77
|
+
yield Nokogiri::XML(node.outer_xml).root if block_given?
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/lib/roo/version.rb
ADDED
data/roo.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'roo/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'roo-andyw8'
|
8
|
+
spec.version = Roo::VERSION
|
9
|
+
spec.authors = ['Thomas Preymesser', 'Hugh McGowan', 'Ben Woosley']
|
10
|
+
spec.email = ['ruby.ruby.ruby.roo@gmail.com']
|
11
|
+
spec.summary = 'Roo can access the contents of various spreadsheet files.'
|
12
|
+
spec.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"
|
13
|
+
spec.homepage = 'http://github.com/Empact/roo'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_dependency 'nokogiri'
|
22
|
+
spec.add_dependency 'rubyzip', '>= 1.0.0'
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '>= 1.7'
|
25
|
+
spec.add_development_dependency 'rake', '>= 10.0'
|
26
|
+
spec.add_development_dependency 'minitest', '>= 5.4.3'
|
27
|
+
end
|
data/scripts/txt2html
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'redcloth'
|
5
|
+
require 'syntax/convertors/html'
|
6
|
+
require 'erb'
|
7
|
+
require File.dirname(__FILE__) + '/../lib/roo/version.rb'
|
8
|
+
|
9
|
+
version = Roo::VERSION::STRING
|
10
|
+
download = 'http://rubyforge.org/projects/roo'
|
11
|
+
|
12
|
+
class Fixnum
|
13
|
+
def ordinal
|
14
|
+
# teens
|
15
|
+
return 'th' if (10..19).include?(self % 100)
|
16
|
+
# others
|
17
|
+
case self % 10
|
18
|
+
when 1: return 'st'
|
19
|
+
when 2: return 'nd'
|
20
|
+
when 3: return 'rd'
|
21
|
+
else return 'th'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Time
|
27
|
+
def pretty
|
28
|
+
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def convert_syntax(syntax, source)
|
33
|
+
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
34
|
+
end
|
35
|
+
|
36
|
+
if ARGV.length >= 1
|
37
|
+
src, template = ARGV
|
38
|
+
template ||= File.dirname(__FILE__) + '/../website/template.rhtml'
|
39
|
+
|
40
|
+
else
|
41
|
+
puts("Usage: #{File.split($0).last} source.txt [template.rhtml] > output.html")
|
42
|
+
exit!
|
43
|
+
end
|
44
|
+
|
45
|
+
template = ERB.new(File.open(template).read)
|
46
|
+
|
47
|
+
title = nil
|
48
|
+
body = nil
|
49
|
+
File.open(src) do |fsrc|
|
50
|
+
title_text = fsrc.readline
|
51
|
+
body_text = fsrc.read
|
52
|
+
syntax_items = []
|
53
|
+
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</>!m){
|
54
|
+
ident = syntax_items.length
|
55
|
+
element, syntax, source = $1, $2, $3
|
56
|
+
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
57
|
+
"syntax-temp-#{ident}"
|
58
|
+
}
|
59
|
+
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
60
|
+
body = RedCloth.new(body_text).to_html
|
61
|
+
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
62
|
+
end
|
63
|
+
stat = File.stat(src)
|
64
|
+
created = stat.ctime
|
65
|
+
modified = stat.mtime
|
66
|
+
|
67
|
+
$stdout << template.result(binding)
|
@@ -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&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&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
|