onyx-cache-money 0.2.6 → 0.2.6.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.
@@ -194,7 +194,7 @@ module Cash
194
194
  match = results.select do |result|
195
195
  found_match = false
196
196
  missing_keys_values_pair.each_slice(2) do |key, value|
197
- found_match = upcase_if_possible(result.send(key)) == convert_value(key, value)
197
+ found_match = upcase_if_possible(result.send(key)) == upcase_if_possible(type_cast(key,value))
198
198
  break unless found_match
199
199
  end
200
200
  found_match
@@ -215,7 +215,9 @@ module Cash
215
215
  # { :id => [1,2], :title => [foo] }
216
216
 
217
217
  conditions = keys_values.collect do |key,values|
218
- quoted_values = values.collect {|value| quote_value(value, columns_hash[key])}
218
+ quoted_values = values.collect do |value|
219
+ quote_value(type_cast(key, value), columns_hash[key])
220
+ end
219
221
  quoted_table_and_column_name = "#{quoted_table_name}.#{connection.quote_column_name(key)}"
220
222
  if quoted_values.size == 1
221
223
  "#{quoted_table_and_column_name} = #{quoted_values}"
@@ -227,14 +229,13 @@ module Cash
227
229
 
228
230
  protected
229
231
 
230
- def upcase_if_possible(value)
231
- value.respond_to?(:upcase) ? value.upcase : value
232
+ def type_cast(column_name, value)
233
+ columns_hash[column_name].type_cast(value)
232
234
  end
233
235
 
234
- def convert_value(key, value)
235
- columns_hash[key].type == :integer ? value.to_i : upcase_if_possible(value)
236
+ def upcase_if_possible(value)
237
+ value.respond_to?(:upcase) ? value.upcase : value
236
238
  end
237
-
238
239
  end
239
240
  end
240
241
  end
@@ -204,6 +204,15 @@ module Cash
204
204
  end.should_not raise_error(ActiveRecord::MissingAttributeError)
205
205
  end
206
206
  end
207
+
208
+ describe "#find(:first, :conditions => '...')" do
209
+ it 'correctly retrives by boolean field' do
210
+ story1 = Story.create! :title => 'a story', :published => true
211
+ story2 = Story.create! :title => 'another story', :published => false
212
+ $memcache.flush_all
213
+ Story.find(:first, :conditions => {:published => true}).should == story1
214
+ end
215
+ end
207
216
 
208
217
  describe '#find(id1, id2, ...)' do
209
218
  it "handles finds with multiple ids correctly" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onyx-cache-money
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Kallen