garb 0.7.1 → 0.7.2
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/lib/garb/filter_parameters.rb +7 -3
- data/lib/garb/version.rb +1 -1
- data/test/unit/garb/filter_parameters_test.rb +7 -5
- metadata +28 -13
@@ -4,7 +4,7 @@ module Garb
|
|
4
4
|
methods.each do |method|
|
5
5
|
class_eval <<-CODE
|
6
6
|
def #{method}(field, value)
|
7
|
-
|
7
|
+
@filter_hash.merge!({SymbolOperator.new(field, :#{method}) => value})
|
8
8
|
end
|
9
9
|
CODE
|
10
10
|
end
|
@@ -20,7 +20,11 @@ module Garb
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def filters(&block)
|
23
|
+
@filter_hash = {}
|
24
|
+
|
23
25
|
instance_eval &block
|
26
|
+
|
27
|
+
self.parameters << @filter_hash
|
24
28
|
end
|
25
29
|
|
26
30
|
def to_params
|
@@ -28,8 +32,8 @@ module Garb
|
|
28
32
|
param.map do |k,v|
|
29
33
|
next unless k.is_a?(SymbolOperator)
|
30
34
|
"#{URI.encode(k.to_google_analytics, /[=<>]/)}#{CGI::escape(v.to_s)}"
|
31
|
-
end.join('
|
32
|
-
end.join('
|
35
|
+
end.join(';') # Hash AND (no duplicate keys)
|
36
|
+
end.join(',') # Array OR
|
33
37
|
|
34
38
|
value.empty? ? {} : {'filters' => value}
|
35
39
|
end
|
data/lib/garb/version.rb
CHANGED
@@ -9,7 +9,9 @@ module Garb
|
|
9
9
|
symbol = :foo
|
10
10
|
|
11
11
|
SymbolOperator.expects(:new).with(:bar, operator).returns(new_operator)
|
12
|
-
@filter_parameters.
|
12
|
+
@filter_parameters.filters do
|
13
|
+
send(operator.to_sym, :bar, 100)
|
14
|
+
end
|
13
15
|
|
14
16
|
parameter = {new_operator => 100}
|
15
17
|
assert_equal parameter, @filter_parameters.parameters.last
|
@@ -33,14 +35,14 @@ module Garb
|
|
33
35
|
end
|
34
36
|
|
35
37
|
context "when converting parameters hash into query string parameters" do
|
36
|
-
should "parameterize hash operators and join elements" do
|
38
|
+
should "parameterize hash operators and join elements with AND" do
|
37
39
|
@filter_parameters.filters do
|
38
|
-
eql(:city, 'New York')
|
40
|
+
eql(:city, 'New York City')
|
39
41
|
eql(:state, 'New York')
|
40
42
|
end
|
41
43
|
|
42
|
-
params =
|
43
|
-
assert_equal params, @filter_parameters.to_params
|
44
|
+
params = ['ga:city%3D%3DNew+York+City', 'ga:state%3D%3DNew+York']
|
45
|
+
assert_equal params, @filter_parameters.to_params['filters'].split(';').sort
|
44
46
|
end
|
45
47
|
|
46
48
|
should "properly encode operators" do
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: garb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 7
|
8
|
+
- 2
|
9
|
+
version: 0.7.2
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Tony Pitale
|
@@ -9,29 +14,37 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-05 00:00:00 -05:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: happymapper
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ~>
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 3
|
30
|
+
- 0
|
23
31
|
version: 0.3.0
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: activesupport
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 2
|
43
|
+
- 3
|
44
|
+
- 0
|
33
45
|
version: 2.3.0
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
description:
|
36
49
|
email: tony.pitale@viget.com
|
37
50
|
executables: []
|
@@ -94,18 +107,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
107
|
requirements:
|
95
108
|
- - ">="
|
96
109
|
- !ruby/object:Gem::Version
|
110
|
+
segments:
|
111
|
+
- 0
|
97
112
|
version: "0"
|
98
|
-
version:
|
99
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
117
|
+
segments:
|
118
|
+
- 0
|
103
119
|
version: "0"
|
104
|
-
version:
|
105
120
|
requirements: []
|
106
121
|
|
107
122
|
rubyforge_project: viget
|
108
|
-
rubygems_version: 1.3.
|
123
|
+
rubygems_version: 1.3.6
|
109
124
|
signing_key:
|
110
125
|
specification_version: 3
|
111
126
|
summary: Google Analytics API Ruby Wrapper
|