sentiql 0.1.3 → 0.2.3

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.
@@ -1,3 +1,3 @@
1
1
  module SentiQL
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.3"
3
3
  end
data/lib/sentiql.rb CHANGED
@@ -35,6 +35,8 @@ module SentiQL
35
35
 
36
36
  return self unless valid?
37
37
 
38
+ self[:updated_at] = Time.now
39
+
38
40
  SentiQL::Base.execute "UPDATE #{self.class.table} SET #{i.keys.map{|m| "#{m.to_s}=?"}.join(",")} WHERE id=?", values
39
41
 
40
42
  else
@@ -46,6 +48,9 @@ module SentiQL
46
48
 
47
49
  return self unless valid?
48
50
 
51
+ self[:created_at] = Time.now
52
+ self[:updated_at] = Time.now
53
+
49
54
  id = SentiQL::Base.insert "INSERT INTO #{self.class.table} (#{i.keys.map{|k| k.to_s}.join(",")}) VALUES (#{i.map{|k| k="?"}.join(",")})", values
50
55
  @attrs[:id] = id
51
56
 
data/spec/sentiql_spec.rb CHANGED
@@ -6,8 +6,10 @@ class User < SentiQL::Base
6
6
  set_schema :name, :full_name, :email, :crypted_password, :salt, :created_at, :updated_at
7
7
  set_table :users
8
8
 
9
- before_save :set_updated_at
10
- before_create :set_created_at
9
+ #before_save :set_updated_at
10
+ #before_create :set_created_at
11
+ before_save :touch_before_save
12
+ before_create :touch_before_create
11
13
  after_create :touch_after_create
12
14
  after_save :touch_after_save
13
15
 
@@ -22,12 +24,20 @@ class User < SentiQL::Base
22
24
 
23
25
  protected
24
26
 
25
- def set_updated_at
26
- self[:updated_at] = Time.now
27
+ #def set_updated_at
28
+ #self[:updated_at] = Time.now
29
+ #end
30
+
31
+ #def set_created_at
32
+ #self[:created_at] = Time.now
33
+ #end
34
+
35
+ def touch_before_save
36
+ self[:before_save_touched] = Time.now
27
37
  end
28
38
 
29
- def set_created_at
30
- self[:created_at] = Time.now
39
+ def touch_before_create
40
+ self[:before_create_touched] = Time.now
31
41
  end
32
42
 
33
43
  def touch_after_create
@@ -73,6 +83,22 @@ describe SentiQL::Base do
73
83
  u[:full_name] = 'Natalie Portman'
74
84
  lambda { u.save }.should_not change(User, :count)
75
85
  end
86
+
87
+ it "sets created_at attr" do
88
+ u = User.new :name=>'Natalie'
89
+ u.save
90
+ u.created_at.should_not be_nil
91
+ sleep(1)
92
+ lambda { u.save }.should_not change(u, :created_at)
93
+ end
94
+
95
+ it "updates updated_at attr" do
96
+ u = User.new :name=>'Natalie'
97
+ u.save
98
+ u[:full_name] = 'Natalie Portman'
99
+ lambda { u.save }.should change(u, :updated_at)
100
+ end
101
+
76
102
  end
77
103
 
78
104
  describe 'filters' do
@@ -84,14 +110,14 @@ describe SentiQL::Base do
84
110
  u = User.new :name=>'Natalie'
85
111
  u.save
86
112
  sleep(1)
87
- lambda { u.save }.should change(u, :updated_at)
113
+ lambda { u.save }.should change(u, :before_save_touched)
88
114
  end
89
115
 
90
116
  it "executes before_create filters only when record is created" do
91
117
  u = User.new :name=>'Natalie'
92
118
  u.save
93
119
  sleep(1)
94
- lambda { u.save }.should_not change(u, :created_at)
120
+ lambda { u.save }.should_not change(u, :before_create_touched)
95
121
  end
96
122
 
97
123
  it "executes after_create filters only after record is created" do
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentiql
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 3
9
+ version: 0.2.3
6
10
  platform: ruby
7
11
  authors:
8
12
  - Martynas Miliauskas
@@ -10,7 +14,7 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-05-23 00:00:00 +01:00
17
+ date: 2011-05-27 00:00:00 +01:00
14
18
  default_executable:
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
@@ -21,6 +25,9 @@ dependencies:
21
25
  requirements:
22
26
  - - <
23
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 3
24
31
  version: "0.3"
25
32
  type: :runtime
26
33
  version_requirements: *id001
@@ -32,6 +39,8 @@ dependencies:
32
39
  requirements:
33
40
  - - ">="
34
41
  - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
35
44
  version: "0"
36
45
  type: :development
37
46
  version_requirements: *id002
@@ -43,6 +52,8 @@ dependencies:
43
52
  requirements:
44
53
  - - ">="
45
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
46
57
  version: "0"
47
58
  type: :development
48
59
  version_requirements: *id003
@@ -54,6 +65,10 @@ dependencies:
54
65
  requirements:
55
66
  - - ~>
56
67
  - !ruby/object:Gem::Version
68
+ segments:
69
+ - 3
70
+ - 0
71
+ - 5
57
72
  version: 3.0.5
58
73
  type: :development
59
74
  version_requirements: *id004
@@ -92,17 +107,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
107
  requirements:
93
108
  - - ">="
94
109
  - !ruby/object:Gem::Version
110
+ segments:
111
+ - 0
95
112
  version: "0"
96
113
  required_rubygems_version: !ruby/object:Gem::Requirement
97
114
  none: false
98
115
  requirements:
99
116
  - - ">="
100
117
  - !ruby/object:Gem::Version
118
+ segments:
119
+ - 0
101
120
  version: "0"
102
121
  requirements: []
103
122
 
104
123
  rubyforge_project: sentiql
105
- rubygems_version: 1.6.2
124
+ rubygems_version: 1.3.7
106
125
  signing_key:
107
126
  specification_version: 3
108
127
  summary: A minimalistic Ruby wrapper for MySQL