fluidinfo 0.4.0 → 0.4.1
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.
- data/.rvmrc +1 -0
- data/VERSION +1 -1
- data/fluidinfo.gemspec +4 -3
- data/lib/fluidinfo.rb +13 -7
- data/test/test_fluidinfo.rb +22 -1
- metadata +85 -125
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.9.2@fluidinfo.rb
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/fluidinfo.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fluidinfo}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Eric Seidel"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-09}
|
13
13
|
s.description = %q{This gem provides a simple interface to fluidinfo, built on top of the rest-client gem.}
|
14
14
|
s.email = %q{gridaphobe@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
+
".rvmrc",
|
21
22
|
"Gemfile",
|
22
23
|
"Gemfile.lock",
|
23
24
|
"LICENSE.txt",
|
@@ -32,7 +33,7 @@ Gem::Specification.new do |s|
|
|
32
33
|
s.homepage = %q{http://github.com/gridaphobe/fluidinfo.rb}
|
33
34
|
s.licenses = ["MIT"]
|
34
35
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = %q{1.
|
36
|
+
s.rubygems_version = %q{1.6.2}
|
36
37
|
s.summary = %q{Provides a simple interface to fluidinfo}
|
37
38
|
s.test_files = [
|
38
39
|
"test/helper.rb",
|
data/lib/fluidinfo.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "rest-client"
|
2
2
|
require "uri"
|
3
|
+
require "cgi"
|
3
4
|
require "yajl/json_gem"
|
4
5
|
require "base64"
|
5
6
|
require "set"
|
@@ -13,15 +14,15 @@ module Fluidinfo
|
|
13
14
|
|
14
15
|
class Client
|
15
16
|
# The main fluidinfo instance.
|
16
|
-
|
17
|
+
MAIN = 'https://fluiddb.fluidinfo.com'
|
17
18
|
# The sandbox instance, test your code here.
|
18
|
-
|
19
|
+
SANDBOX = 'https://sandbox.fluidinfo.com'
|
19
20
|
|
20
21
|
def initialize(instance=:main)
|
21
22
|
if instance == :sandbox
|
22
|
-
@instance =
|
23
|
+
@instance = SANDBOX
|
23
24
|
else
|
24
|
-
@instance =
|
25
|
+
@instance = MAIN
|
25
26
|
end
|
26
27
|
@headers = {
|
27
28
|
:accept => "*/*",
|
@@ -119,12 +120,17 @@ module Fluidinfo
|
|
119
120
|
arr << "tag=#{tag}"
|
120
121
|
end
|
121
122
|
else
|
122
|
-
arr << "#{key}=#{val}"
|
123
|
+
arr << "#{key}=#{CGI.escape val.to_s}"
|
123
124
|
end
|
124
|
-
|
125
|
+
arr
|
125
126
|
end.join('&')
|
127
|
+
# fix for /about API
|
128
|
+
if path.start_with? '/about/'
|
129
|
+
about = path[7..-1]
|
130
|
+
path = "/about/#{CGI.escape about}"
|
131
|
+
end
|
126
132
|
if args != ''
|
127
|
-
|
133
|
+
"#{@instance}#{path}?#{args}"
|
128
134
|
else
|
129
135
|
"#{@instance}#{path}"
|
130
136
|
end
|
data/test/test_fluidinfo.rb
CHANGED
@@ -175,7 +175,7 @@ class FluidinfoTest < Test::Unit::TestCase
|
|
175
175
|
'indexed' => false
|
176
176
|
}
|
177
177
|
resp = @fluid.post "/tags/test/#{new_ns}", :body => tag_body
|
178
|
-
file = File.new(__FILE__)
|
178
|
+
file = File.new(__FILE__).read
|
179
179
|
path = "/objects/#{ns_id}/test/#{new_ns}/#{new_tag}"
|
180
180
|
resp = @fluid.put path, :body => file, :mime => "text/ruby"
|
181
181
|
assert_equal File.new(__FILE__).read, @fluid.get(path)
|
@@ -200,8 +200,29 @@ class FluidinfoTest < Test::Unit::TestCase
|
|
200
200
|
def @fluid.test_build_payload(*args)
|
201
201
|
build_payload(*args)
|
202
202
|
end
|
203
|
+
def @fluid.test_build_url(*args)
|
204
|
+
build_url(*args)
|
205
|
+
end
|
203
206
|
end
|
204
207
|
|
208
|
+
context "build_url" do
|
209
|
+
should "escape &'s in query tag-values" do
|
210
|
+
query = "test/tag=\"1&2\""
|
211
|
+
assert_equal "https://fluiddb.fluidinfo.com/objects?query=test%2Ftag%3D%221%262%22",
|
212
|
+
@fluid.test_build_url("/objects", :query => query)
|
213
|
+
query = "oreilly.com/title=\"HTML & CSS: The Good Parts\""
|
214
|
+
tags = ["oreilly.com/isbn"]
|
215
|
+
assert_equal "https://fluiddb.fluidinfo.com/values?query=oreilly.com%2Ftitle%3D%22HTML+%26+CSS%3A+The+Good+Parts%22&tag=oreilly.com/isbn",
|
216
|
+
@fluid.test_build_url("/values", :query => query, :tags => tags)
|
217
|
+
end
|
218
|
+
|
219
|
+
should "escape &'s in about-values" do
|
220
|
+
about = "tom & jerry"
|
221
|
+
assert_equal "https://fluiddb.fluidinfo.com/about/tom+%26+jerry",
|
222
|
+
@fluid.test_build_url('/about/tom & jerry')
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
205
226
|
context "build_payload" do
|
206
227
|
should "set proper mime-types" do
|
207
228
|
primitives = [1, 1.1, true, false, nil, ["1", "2", "hi"]]
|
metadata
CHANGED
@@ -1,141 +1,105 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluidinfo
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 0.4.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Eric Seidel
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
12
|
+
date: 2011-06-09 00:00:00.000000000 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rest-client
|
17
|
+
requirement: &14319540 !ruby/object:Gem::Requirement
|
22
18
|
none: false
|
23
|
-
requirements:
|
24
|
-
- -
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 13
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 6
|
30
|
-
- 1
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
31
22
|
version: 1.6.1
|
32
|
-
name: rest-client
|
33
|
-
prerelease: false
|
34
23
|
type: :runtime
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *14319540
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: yajl-ruby
|
28
|
+
requirement: &14318660 !ruby/object:Gem::Requirement
|
38
29
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
hash: 59
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 8
|
46
|
-
- 2
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
47
33
|
version: 0.8.2
|
48
|
-
name: yajl-ruby
|
49
|
-
prerelease: false
|
50
34
|
type: :runtime
|
51
|
-
requirement: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 3
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
62
|
-
name: shoulda
|
63
35
|
prerelease: false
|
36
|
+
version_requirements: *14318660
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: shoulda
|
39
|
+
requirement: &14317480 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
64
45
|
type: :development
|
65
|
-
|
66
|
-
|
67
|
-
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *14317480
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: bundler
|
50
|
+
requirement: &14316120 !ruby/object:Gem::Requirement
|
68
51
|
none: false
|
69
|
-
requirements:
|
52
|
+
requirements:
|
70
53
|
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
hash: 23
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 0
|
76
|
-
- 0
|
54
|
+
- !ruby/object:Gem::Version
|
77
55
|
version: 1.0.0
|
78
|
-
name: bundler
|
79
|
-
prerelease: false
|
80
56
|
type: :development
|
81
|
-
|
82
|
-
|
83
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *14316120
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: jeweler
|
61
|
+
requirement: &14314720 !ruby/object:Gem::Requirement
|
84
62
|
none: false
|
85
|
-
requirements:
|
63
|
+
requirements:
|
86
64
|
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
hash: 7
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 5
|
92
|
-
- 2
|
65
|
+
- !ruby/object:Gem::Version
|
93
66
|
version: 1.5.2
|
94
|
-
name: jeweler
|
95
|
-
prerelease: false
|
96
67
|
type: :development
|
97
|
-
requirement: *id005
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
hash: 3
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
version: "0"
|
108
|
-
name: rcov
|
109
68
|
prerelease: false
|
69
|
+
version_requirements: *14314720
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rcov
|
72
|
+
requirement: &14313480 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
110
78
|
type: :development
|
111
|
-
|
112
|
-
|
113
|
-
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *14313480
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: uuidtools
|
83
|
+
requirement: &14304960 !ruby/object:Gem::Requirement
|
114
84
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
hash: 15
|
119
|
-
segments:
|
120
|
-
- 2
|
121
|
-
- 1
|
122
|
-
- 2
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
123
88
|
version: 2.1.2
|
124
|
-
name: uuidtools
|
125
|
-
prerelease: false
|
126
89
|
type: :development
|
127
|
-
|
128
|
-
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *14304960
|
92
|
+
description: This gem provides a simple interface to fluidinfo, built on top of the
|
93
|
+
rest-client gem.
|
129
94
|
email: gridaphobe@gmail.com
|
130
95
|
executables: []
|
131
|
-
|
132
96
|
extensions: []
|
133
|
-
|
134
|
-
extra_rdoc_files:
|
97
|
+
extra_rdoc_files:
|
135
98
|
- LICENSE.txt
|
136
99
|
- README.rdoc
|
137
|
-
files:
|
100
|
+
files:
|
138
101
|
- .document
|
102
|
+
- .rvmrc
|
139
103
|
- Gemfile
|
140
104
|
- Gemfile.lock
|
141
105
|
- LICENSE.txt
|
@@ -146,39 +110,35 @@ files:
|
|
146
110
|
- lib/fluidinfo.rb
|
147
111
|
- test/helper.rb
|
148
112
|
- test/test_fluidinfo.rb
|
113
|
+
has_rdoc: true
|
149
114
|
homepage: http://github.com/gridaphobe/fluidinfo.rb
|
150
|
-
licenses:
|
115
|
+
licenses:
|
151
116
|
- MIT
|
152
117
|
post_install_message:
|
153
118
|
rdoc_options: []
|
154
|
-
|
155
|
-
require_paths:
|
119
|
+
require_paths:
|
156
120
|
- lib
|
157
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
122
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
|
163
|
-
segments:
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
segments:
|
164
128
|
- 0
|
165
|
-
|
166
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
|
+
hash: -424493676000588461
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
131
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
172
|
-
segments:
|
173
|
-
- 0
|
174
|
-
version: "0"
|
132
|
+
requirements:
|
133
|
+
- - ! '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
175
136
|
requirements: []
|
176
|
-
|
177
137
|
rubyforge_project:
|
178
|
-
rubygems_version: 1.
|
138
|
+
rubygems_version: 1.6.2
|
179
139
|
signing_key:
|
180
140
|
specification_version: 3
|
181
141
|
summary: Provides a simple interface to fluidinfo
|
182
|
-
test_files:
|
142
|
+
test_files:
|
183
143
|
- test/helper.rb
|
184
144
|
- test/test_fluidinfo.rb
|