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 ADDED
@@ -0,0 +1 @@
1
+ rvm 1.9.2@fluidinfo.rb
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
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.0"
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-04-09}
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.7.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
- @@MAIN = 'https://fluiddb.fluidinfo.com'
17
+ MAIN = 'https://fluiddb.fluidinfo.com'
17
18
  # The sandbox instance, test your code here.
18
- @@SANDBOX = 'https://sandbox.fluidinfo.com'
19
+ SANDBOX = 'https://sandbox.fluidinfo.com'
19
20
 
20
21
  def initialize(instance=:main)
21
22
  if instance == :sandbox
22
- @instance = @@SANDBOX
23
+ @instance = SANDBOX
23
24
  else
24
- @instance = @@MAIN
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
- arr
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
- URI.escape "#{@instance}#{path}?#{args}"
133
+ "#{@instance}#{path}?#{args}"
128
134
  else
129
135
  "#{@instance}#{path}"
130
136
  end
@@ -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
- hash: 15
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
- date: 2011-04-09 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- requirement: *id003
66
- - !ruby/object:Gem::Dependency
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- requirement: *id004
82
- - !ruby/object:Gem::Dependency
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- requirement: *id006
112
- - !ruby/object:Gem::Dependency
113
- version_requirements: &id007 !ruby/object:Gem::Requirement
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
- requirement: *id007
128
- description: This gem provides a simple interface to fluidinfo, built on top of the rest-client gem.
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
- hash: 3
163
- segments:
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ segments:
164
128
  - 0
165
- version: "0"
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
- hash: 3
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.7.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