ruby-ext-js 0.3.0 → 0.3.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/README.markdown +4 -0
- data/VERSION +1 -1
- data/lib/ruby-ext-js.rb +11 -4
- data/ruby-ext-js.gemspec +1 -1
- data/spec/ruby-ext-js_spec.rb +18 -4
- metadata +3 -3
data/README.markdown
CHANGED
@@ -65,6 +65,10 @@ Examples:
|
|
65
65
|
|
66
66
|
Version number conventions: Patch-level bumps for bug fixes, minor-level bumps for changes that break backwards-compatibility, major-level bumps for major new features.
|
67
67
|
|
68
|
+
## 0.3.1
|
69
|
+
|
70
|
+
* Use `Time.utc` instead of `Date` for `ExtJs::Mongo` date range filters.
|
71
|
+
|
68
72
|
## 0.3.0
|
69
73
|
|
70
74
|
* `ExtJs::Mongo` now supports 'date' filter params with "gt" and "lt" params.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/ruby-ext-js.rb
CHANGED
@@ -150,8 +150,14 @@ module ExtJs
|
|
150
150
|
|
151
151
|
case hash["data"]["type"]
|
152
152
|
when "date"
|
153
|
-
values.map!{ |date| Date.parse( date ) }
|
154
|
-
|
153
|
+
values.map!{ |date| date = Date.parse( date ); Time.utc( date.year, date.month, date.day ) }
|
154
|
+
if comparison == "=="
|
155
|
+
start_time = values[0]
|
156
|
+
end_time = Time.utc( start_time.year, start_time.month, start_time.day, 23, 59, 59 )
|
157
|
+
values = { comparison_for( "gt" ) => start_time, comparison_for( "lt" ) => end_time }
|
158
|
+
else
|
159
|
+
values = { comparison => values[0] }
|
160
|
+
end
|
155
161
|
else
|
156
162
|
if values.size == 1
|
157
163
|
values = values[0]
|
@@ -165,8 +171,9 @@ module ExtJs
|
|
165
171
|
|
166
172
|
def self.comparison_for( str )
|
167
173
|
case str
|
168
|
-
when "lt"; "$
|
169
|
-
when "gt"; "$
|
174
|
+
when "lt"; "$lte"
|
175
|
+
when "gt"; "$gte"
|
176
|
+
when "eq"; "=="
|
170
177
|
else; "$in"
|
171
178
|
end
|
172
179
|
end
|
data/ruby-ext-js.gemspec
CHANGED
data/spec/ruby-ext-js_spec.rb
CHANGED
@@ -89,6 +89,8 @@ describe "ExtJs" do
|
|
89
89
|
|
90
90
|
it "handles date range params" do
|
91
91
|
date = Date.parse "11/26/2010"
|
92
|
+
start_time = Time.utc( date.year, date.month, date.day )
|
93
|
+
end_time = Time.utc( date.year, date.month, date.day, 23, 59, 59 )
|
92
94
|
|
93
95
|
params = { "filter" => {
|
94
96
|
"0" => {
|
@@ -100,9 +102,8 @@ describe "ExtJs" do
|
|
100
102
|
"field" => "inserted_at"
|
101
103
|
}
|
102
104
|
}}
|
103
|
-
|
104
105
|
mongo = TestMongoWithFilters.new( params )
|
105
|
-
mongo.conditions.should == { "inserted_at" => { "$
|
106
|
+
mongo.conditions.should == { "inserted_at" => { "$lte" => start_time } }
|
106
107
|
|
107
108
|
params = { "filter" => {
|
108
109
|
"0" => {
|
@@ -114,13 +115,26 @@ describe "ExtJs" do
|
|
114
115
|
"field" => "inserted_at"
|
115
116
|
}
|
116
117
|
}}
|
118
|
+
mongo = TestMongoWithFilters.new( params )
|
119
|
+
mongo.conditions.should == { "inserted_at" => { "$gte" => start_time } }
|
117
120
|
|
121
|
+
params = { "filter" => {
|
122
|
+
"0" => {
|
123
|
+
"data" => {
|
124
|
+
"type" => "date",
|
125
|
+
"value" => "11/26/2010",
|
126
|
+
"comparison" => "eq"
|
127
|
+
},
|
128
|
+
"field" => "inserted_at"
|
129
|
+
}
|
130
|
+
}}
|
118
131
|
mongo = TestMongoWithFilters.new( params )
|
119
|
-
mongo.conditions.should == { "inserted_at" => { "$
|
132
|
+
mongo.conditions.should == { "inserted_at" => { "$gte" => start_time, "$lte" => end_time } }
|
120
133
|
end
|
121
134
|
|
122
135
|
it "handles invalid comparison operators by falling back to $in" do
|
123
136
|
date = Date.parse "11/26/2010"
|
137
|
+
start_time = Time.utc( date.year, date.month, date.day )
|
124
138
|
|
125
139
|
params = { "filter" => {
|
126
140
|
"0" => {
|
@@ -134,7 +148,7 @@ describe "ExtJs" do
|
|
134
148
|
}}
|
135
149
|
|
136
150
|
mongo = TestMongoWithFilters.new( params )
|
137
|
-
mongo.conditions.should == { "inserted_at" => { "$in" =>
|
151
|
+
mongo.conditions.should == { "inserted_at" => { "$in" => start_time } }
|
138
152
|
end
|
139
153
|
end
|
140
154
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-ext-js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tyson Tate
|