conditioner 0.0.5 → 0.0.6

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.
@@ -43,6 +43,7 @@ To override Conditioner configurations create config/initializers/conditioner.rb
43
43
 
44
44
  * 0.0.2 Add configurable rules for extactions
45
45
  * 0.0.3 Fix bug with to extract - which eat first parameter
46
+ * 0.0.6 Some fixes for correct timezones support in rails
46
47
 
47
48
  == LICENSE:
48
49
 
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ end
26
26
 
27
27
  PKG_FILES = FileList[ '[a-zA-Z]*', 'generators/**/*', 'lib/**/*', 'rails/**/*', 'tasks/**/*', 'test/**/*' ]
28
28
 
29
- require 'lib/conditioner.rb'
29
+ require File.dirname(__FILE__) + '/lib/conditioner.rb'
30
30
  spec = Gem::Specification.new do |s|
31
31
  s.name = "conditioner"
32
32
  s.version = Conditioner::VERSION
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module Conditioner
5
- VERSION = '0.0.5'
5
+ VERSION = '0.0.6'
6
6
  autoload :ActiveRecordMixin, 'conditioner/active_record_mixin'
7
7
  autoload :Condition, 'conditioner/condition'
8
8
  autoload :Configurator, 'conditioner/configurator'
@@ -23,14 +23,14 @@ module Conditioner
23
23
  cnd.and(["upper(#{cnd.with_table_name(field)}) like upper(?)",v])
24
24
  #FIXME: add logic for ranges
25
25
  elsif field=~ /^from_(\w*_(datetime|at))/ and cnd.is_field?($1)
26
- datetime = Time.parse(v)
26
+ datetime = Time.zone.parse(v)
27
27
  cnd.and(["#{cnd.with_table_name($1)} >= ?",datetime])
28
28
  elsif field=~ /^to_(\w*_(datetime|at))/ and cnd.is_field?($1)
29
- datetime = Time.parse(v).change(:hour => 23,:min => 59,:sec => 59,:usec => 0)
29
+ datetime = Time.zone.parse(v).change(:hour => 23,:min => 59,:sec => 59,:usec => 0)
30
30
  cnd.and(["#{cnd.with_table_name($1)} <= ?",datetime])
31
31
  elsif cnd.is_field?(field) && (field.include?('_datetime') || field.include?('_at'))
32
- start_date = Time.parse(v).change(:hour => 0,:min => 0,:sec => 0,:usec => 0)
33
- end_date = Time.parse(v).change(:hour => 23,:min => 59,:sec => 59,:usec => 0)
32
+ start_date = Time.zone.parse(v).change(:hour => 0,:min => 0,:sec => 0,:usec => 0)
33
+ end_date = Time.zone.parse(v).change(:hour => 23,:min => 59,:sec => 59,:usec => 0)
34
34
  cnd.and(["(#{cnd.with_table_name(field)} BETWEEN ? AND ?)",start_date,end_date])
35
35
  elsif field=~ /^(\w*)_(ltoe|gtoe|lt|gt)$/ and cnd.is_field?($1)
36
36
  operator = { 'lt' => '<', 'gt' => '>', 'ltoe' => '<=', 'gtoe' => '>=' }[$2]
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
1
+ require File.dirname(File.expand_path(__FILE__)) + '/test_helper.rb'
2
2
 
3
3
  Conditioner.configure do |cfg|
4
4
  #Must be activated by default
@@ -13,6 +13,10 @@ Conditioner.configure do |cfg|
13
13
  end
14
14
  end
15
15
 
16
+ # FIXME: we are depending on Time.zone now...
17
+ # This is required for Time.zone to work correctly
18
+ Time.zone ||= ENV['TZ'] || 'UTC'
19
+
16
20
  class TestConditioner < Test::Unit::TestCase
17
21
 
18
22
  def test_conditioner_creation
@@ -77,6 +81,12 @@ class TestConditioner < Test::Unit::TestCase
77
81
  assert_match(/created_at > '2010-01-01'/, cnd)
78
82
  end
79
83
 
84
+ def test_dates_from_to
85
+ cnd = User.conditioner :from_created_at => '2010-01-01', :to_created_at => '2010-01-01'
86
+ assert_match(/created_at >= '2010-01-01 00:00:00/, cnd)
87
+ assert_match(/created_at <= '2010-01-01 23:59:59/, cnd)
88
+ end
89
+
80
90
  def test_conditioner_without_model
81
91
  cnd = Conditioner.create('users', :columns => ['id', 'email']).extract(:email => "nicola", :foo => "bar")
82
92
  assert_equal(%Q["users"."email" = 'nicola'], cnd)
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conditioner
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 5
10
- version: 0.0.5
8
+ - 6
9
+ version: 0.0.6
11
10
  platform: ruby
12
11
  authors:
13
12
  - niquola
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-10-22 00:00:00 +04:00
17
+ date: 2010-11-29 00:00:00 +03:00
19
18
  default_executable:
20
19
  dependencies: []
21
20
 
@@ -28,17 +27,17 @@ extensions: []
28
27
  extra_rdoc_files:
29
28
  - README.rdoc
30
29
  files:
31
- - Rakefile
32
30
  - History.txt
33
- - Manifest.txt
34
- - README.rdoc
35
31
  - PostInstall.txt
36
32
  - init.rb
33
+ - Manifest.txt
34
+ - README.rdoc
35
+ - Rakefile
36
+ - lib/conditioner.rb
37
+ - lib/conditioner/condition.rb
37
38
  - lib/conditioner/fake_model.rb
38
39
  - lib/conditioner/configurator.rb
39
- - lib/conditioner/condition.rb
40
40
  - lib/conditioner/active_record_mixin.rb
41
- - lib/conditioner.rb
42
41
  - test/test_helper.rb
43
42
  - test/conditioner_test.rb
44
43
  has_rdoc: true
@@ -55,7 +54,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
54
  requirements:
56
55
  - - ">="
57
56
  - !ruby/object:Gem::Version
58
- hash: 3
59
57
  segments:
60
58
  - 0
61
59
  version: "0"
@@ -64,7 +62,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
62
  requirements:
65
63
  - - ">="
66
64
  - !ruby/object:Gem::Version
67
- hash: 3
68
65
  segments:
69
66
  - 0
70
67
  version: "0"