fluidinfo 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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