thebigdb 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +10 -10
- data/lib/thebigdb/helpers.rb +6 -6
- data/lib/thebigdb/version.rb +1 -1
- data/spec/helpers_spec.rb +10 -8
- data/spec/resources/statement_spec.rb +4 -4
- metadata +2 -2
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
thebigdb (1.2.
|
4
|
+
thebigdb (1.2.2)
|
5
5
|
rack (~> 1.4)
|
6
6
|
|
7
7
|
GEM
|
@@ -10,26 +10,27 @@ GEM
|
|
10
10
|
addressable (2.3.3)
|
11
11
|
coderay (1.0.9)
|
12
12
|
crack (0.3.2)
|
13
|
-
diff-lcs (1.2.
|
14
|
-
ffi (1.
|
15
|
-
|
13
|
+
diff-lcs (1.2.2)
|
14
|
+
ffi (1.6.0)
|
15
|
+
formatador (0.2.4)
|
16
|
+
guard (1.7.0)
|
17
|
+
formatador (>= 0.2.4)
|
16
18
|
listen (>= 0.6.0)
|
17
19
|
lumberjack (>= 1.0.2)
|
18
20
|
pry (>= 0.9.10)
|
19
|
-
terminal-table (>= 1.4.3)
|
20
21
|
thor (>= 0.14.6)
|
21
|
-
guard-rspec (2.5.
|
22
|
+
guard-rspec (2.5.1)
|
22
23
|
guard (>= 1.1)
|
23
24
|
rspec (~> 2.11)
|
24
25
|
listen (0.7.3)
|
25
|
-
lumberjack (1.0.
|
26
|
+
lumberjack (1.0.3)
|
26
27
|
method_source (0.8.1)
|
27
28
|
pry (0.9.12)
|
28
29
|
coderay (~> 1.0.5)
|
29
30
|
method_source (~> 0.8)
|
30
31
|
slop (~> 3.4)
|
31
32
|
rack (1.5.2)
|
32
|
-
rake (10.0.
|
33
|
+
rake (10.0.4)
|
33
34
|
rb-fchange (0.0.6)
|
34
35
|
ffi
|
35
36
|
rb-fsevent (0.9.3)
|
@@ -44,8 +45,7 @@ GEM
|
|
44
45
|
diff-lcs (>= 1.1.3, < 2.0)
|
45
46
|
rspec-mocks (2.13.0)
|
46
47
|
slop (3.4.4)
|
47
|
-
|
48
|
-
thor (0.17.0)
|
48
|
+
thor (0.18.1)
|
49
49
|
webmock (1.11.0)
|
50
50
|
addressable (>= 2.2.7)
|
51
51
|
crack (>= 0.3.2)
|
data/lib/thebigdb/helpers.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module TheBigDB
|
2
2
|
module Helpers
|
3
3
|
|
4
|
-
# serialize_query_params({house: "
|
5
|
-
# => house=
|
4
|
+
# serialize_query_params({house: "brick and mortar", animals: ["cat", "dog"], computers: {cool: true, drives: ["hard", "flash"]}})
|
5
|
+
# => house=brick%20and%20mortar&animals%5B0%5D=cat&animals%5B1%5D=dog&computers%5Bcool%5D=true&computers%5Bdrives%5D%5B0%5D=hard&computers%5Bdrives%5D%5B1%5D=flash
|
6
6
|
# which will be read by the server as:
|
7
|
-
# => house=
|
7
|
+
# => house=brick%20and%20mortar&animals[]=cat&animals[]=dog&computers[cool]=true&computers[drives][]=hard&computers[drives][]=flash
|
8
8
|
def self.serialize_query_params(params, prefix = nil)
|
9
9
|
ret = []
|
10
10
|
params.each_pair do |key, value|
|
@@ -19,14 +19,14 @@ module TheBigDB
|
|
19
19
|
end
|
20
20
|
ret << self.serialize_query_params(sub_hash, param_key.to_s)
|
21
21
|
else
|
22
|
-
ret << URI.encode_www_form_component(param_key.to_s) + "=" + URI.encode_www_form_component(value.to_s)
|
22
|
+
ret << URI.encode_www_form_component(param_key.to_s) + "=" + URI.encode_www_form_component(value.to_s).gsub("+", "%20")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
ret.join("&")
|
26
26
|
end
|
27
27
|
|
28
|
-
# flatten_params_keys({house: "
|
29
|
-
# => {"house" => "
|
28
|
+
# flatten_params_keys({house: "brick and mortar", animals: ["cat", "dog"], computers: {cool: true, drives: ["hard", "flash"]}})
|
29
|
+
# => {"house" => "brick and mortar", "animals[0]" => "cat", "animals[1]" => "dog", "computers[cool]" => "true", "computers[drives][0]" => "hard", "computers[drives][1]" => "flash"}
|
30
30
|
def self.flatten_params_keys(params)
|
31
31
|
serialized_params = self.serialize_query_params(params)
|
32
32
|
new_params = {}
|
data/lib/thebigdb/version.rb
CHANGED
data/spec/helpers_spec.rb
CHANGED
@@ -7,18 +7,20 @@ describe "Helpers" do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "works with more complex imbricated params" do
|
10
|
+
same_expected_result = "house=brick%20and%20mortar&animals%5B0%5D=cat&animals%5B1%5D=dog&computers%5Bcool%5D=true&computers%5Bdrives%5D%5B0%5D=hard&computers%5Bdrives%5D%5B1%5D=flash"
|
11
|
+
|
10
12
|
TheBigDB::Helpers::serialize_query_params({
|
11
|
-
house: "
|
13
|
+
house: "brick and mortar",
|
12
14
|
animals: ["cat", "dog"],
|
13
15
|
computers: {cool: true, drives: ["hard", "flash"]}
|
14
|
-
}).should ==
|
16
|
+
}).should == same_expected_result
|
15
17
|
|
16
18
|
# and with a hash instead of an array
|
17
19
|
TheBigDB::Helpers::serialize_query_params({
|
18
|
-
house: "
|
20
|
+
house: "brick and mortar",
|
19
21
|
animals: {"0" => "cat", "1" => "dog"},
|
20
22
|
computers: {cool: true, drives: ["hard", "flash"]}
|
21
|
-
}).should ==
|
23
|
+
}).should == same_expected_result
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
@@ -29,11 +31,11 @@ describe "Helpers" do
|
|
29
31
|
|
30
32
|
it "works with more complex imbricated params" do
|
31
33
|
TheBigDB::Helpers::flatten_params_keys({
|
32
|
-
house: "
|
34
|
+
house: "brick and mortar",
|
33
35
|
animals: ["cat", "dog"],
|
34
36
|
computers: {cool: true, drives: ["hard", "flash"]}
|
35
37
|
}).should == {
|
36
|
-
"house" => "
|
38
|
+
"house" => "brick and mortar",
|
37
39
|
"animals[0]" => "cat",
|
38
40
|
"animals[1]" => "dog",
|
39
41
|
"computers[cool]" => "true",
|
@@ -43,11 +45,11 @@ describe "Helpers" do
|
|
43
45
|
|
44
46
|
# and with a hash instead of an array
|
45
47
|
TheBigDB::Helpers::flatten_params_keys({
|
46
|
-
house: "
|
48
|
+
house: "brick and mortar",
|
47
49
|
animals: {"0" => "cat", "1" => "dog"},
|
48
50
|
computers: {cool: true, drives: ["hard", "flash"]}
|
49
51
|
}).should == {
|
50
|
-
"house" => "
|
52
|
+
"house" => "brick and mortar",
|
51
53
|
"animals[0]" => "cat",
|
52
54
|
"animals[1]" => "dog",
|
53
55
|
"computers[cool]" => "true",
|
@@ -5,7 +5,7 @@ describe "Statement" do
|
|
5
5
|
before do
|
6
6
|
stub_request(:get, @request_path.call("search")).to_return(:body => '{"server_says": "hello world"}')
|
7
7
|
|
8
|
-
@request = TheBigDB::Statement(:search, nodes: ["a", "b"])
|
8
|
+
@request = TheBigDB::Statement(:search, nodes: ["a a", "b"])
|
9
9
|
end
|
10
10
|
|
11
11
|
it "sets the correct data_sent instance variable" do
|
@@ -15,7 +15,7 @@ describe "Statement" do
|
|
15
15
|
"port" => TheBigDB.api_port,
|
16
16
|
"path" => "/v#{TheBigDB.api_version}/statements/search",
|
17
17
|
"method" => "GET",
|
18
|
-
"params" => {"nodes" => {"0" => "a", "1" => "b"}}
|
18
|
+
"params" => {"nodes" => {"0" => "a a", "1" => "b"}}
|
19
19
|
}
|
20
20
|
end
|
21
21
|
|
@@ -33,9 +33,9 @@ describe "StatementRequest" do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it "makes normal requests" do
|
36
|
-
@search = TheBigDB.search("a", "b", {match: "blue"})
|
36
|
+
@search = TheBigDB.search("a a", "b", {match: "blue"})
|
37
37
|
@search.with(page: 2)
|
38
|
-
@search.params.should == {"nodes" => ["a", "b", {match: "blue"}], "page" => 2}
|
38
|
+
@search.params.should == {"nodes" => ["a a", "b", {match: "blue"}], "page" => 2}
|
39
39
|
end
|
40
40
|
|
41
41
|
it "cache the response unless the params are modified, or asked to" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thebigdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|