appoxy-simple_record 1.1.3 → 1.1.5

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/results_array.rb CHANGED
@@ -7,7 +7,6 @@ module SimpleRecord
7
7
  @clz = clz
8
8
  #puts 'class=' + clz.inspect
9
9
  @params = params
10
- #puts 'params in ra=' + params.inspect
11
10
  @items = items
12
11
  @next_token = next_token
13
12
  @i = 0
@@ -26,6 +25,7 @@ module SimpleRecord
26
25
  return @count if @count
27
26
  params_for_count = params.dup
28
27
  params_for_count[0] = :count
28
+ #puts 'params_for_count=' + params_for_count.inspect
29
29
  @count = clz.find(*params_for_count)
30
30
  # puts '@count=' + @count.to_s
31
31
  @count
data/lib/simple_record.rb CHANGED
@@ -872,6 +872,7 @@ This is done on getters now
872
872
  results = q_type == :all ? [] : nil
873
873
  begin
874
874
  results=super(*params)
875
+ #puts 'params3=' + params.inspect
875
876
  SimpleRecord.stats.selects += 1
876
877
  if q_type != :count
877
878
  cache_results(results)
data/lib/stats.rb CHANGED
@@ -2,9 +2,15 @@ module SimpleRecord
2
2
  class Stats
3
3
  attr_accessor :selects, :puts
4
4
 
5
+ def initialize
6
+ @selects = 0
7
+ @puts = 0
8
+ end
9
+
5
10
  def clear
6
11
  self.selects = 0
7
12
  self.puts = 0
8
13
  end
9
14
  end
10
- end
15
+ end
16
+
@@ -12,7 +12,6 @@ class TestSimpleRecord < Test::Unit::TestCase
12
12
  #puts @config.inspect
13
13
  SimpleRecord.establish_connection(@config['amazon']['access_key'], @config['amazon']['secret_key'], :port=>80, :protocol=>"http")
14
14
  SimpleRecord::Base.set_domain_prefix("simplerecord_tests_")
15
- SimpleRecord.stats.clear
16
15
  end
17
16
 
18
17
  def teardown
@@ -20,7 +19,160 @@ class TestSimpleRecord < Test::Unit::TestCase
20
19
  end
21
20
 
22
21
 
22
+ def test_save_get
23
+ mm = MyModel.new
24
+ mm.name = "Travis"
25
+ mm.age = 32
26
+ mm.cool = true
27
+ mm.save
28
+
29
+ assert !mm.created.nil?
30
+ assert !mm.updated.nil?
31
+ assert !mm.id.nil?
32
+ assert mm.age == 32
33
+ assert mm.cool = true
34
+ assert mm.name = "Travis"
35
+
36
+ id = mm.id
37
+ puts 'id=' + id.to_s
38
+ # Get the object back
39
+ mm2 = MyModel.find(id)
40
+ #puts 'got=' + mm2.name + ' and he/she is ' + mm2.age.to_s + ' years old and he/she is cool? ' + mm2.cool.to_s
41
+ #puts mm2.cool.class.name
42
+ assert mm2.id == mm.id
43
+ assert mm2.age == mm.age
44
+ assert mm2.cool == mm.cool
45
+ assert mm2.age == 32
46
+ assert mm2.cool = true
47
+ assert mm2.name = "Travis"
48
+ assert mm2.created.is_a? DateTime
49
+ end
50
+
51
+ def test_bad_query
52
+ assert_raise RightAws::AwsError do
53
+ mm2 = MyModel.find(:all, :conditions=>["name =4?", "1"])
54
+ end
55
+ end
56
+
57
+ def test_batch_save
58
+ items = []
59
+ mm = MyModel.new
60
+ mm.name = "Travis"
61
+ mm.age = 32
62
+ mm.cool = true
63
+ items << mm
64
+ mm = MyModel.new
65
+ mm.name = "Tritt"
66
+ mm.age = 44
67
+ mm.cool = false
68
+ items << mm
69
+ MyModel.batch_save(items)
70
+ items.each do |item|
71
+ puts 'id=' + item.id
72
+ new_item = MyModel.find(item.id)
73
+ #puts 'new=' + new_item.inspect
74
+ assert item.id == new_item.id
75
+ assert item.name == new_item.name
76
+ assert item.cool == new_item.cool
77
+ end
78
+ end
79
+
80
+ # Testing getting the association ID without materializing the obejct
81
+ def test_get_belongs_to_id
82
+ mm = MyModel.new
83
+ mm.name = "Parent"
84
+ mm.age = 55
85
+ mm.cool = true
86
+ mm.save
87
+
88
+ child = MyChildModel.new
89
+ child.name = "Child"
90
+ child.my_model = mm
91
+ child.save
92
+
93
+ child = MyChildModel.find(child.id)
94
+ puts child.my_model_id
95
+ assert child.my_model_id == mm.id
96
+ end
97
+
98
+ def test_callbacks
99
+
100
+
101
+ mm = MyModel.new
102
+ assert !mm.save
103
+ assert mm.errors.count == 1 # name is required
104
+
105
+ # test queued callback before_create
106
+ mm.name = "Travis"
107
+ assert mm.save
108
+ # now nickname should be set on before_create
109
+ assert mm.nickname == mm.name
110
+
111
+ mm2 = MyModel.find(mm.id)
112
+ assert mm2.nickname = mm.nickname
113
+ assert mm2.name = mm.name
114
+
115
+
116
+
117
+ end
118
+
119
+ def test_dirty
120
+ mm = MyModel.new
121
+ mm.name = "Travis"
122
+ mm.age = 32
123
+ mm.cool = true
124
+ mm.save
125
+ id = mm.id
126
+ puts 'id=' + id.to_s
127
+ # Get the object back
128
+ mm2 = MyModel.find(id)
129
+ puts 'got=' + mm2.name + ' and he/she is ' + mm2.age.to_s + ' years old and he/she is cool? ' + mm2.cool.to_s
130
+ assert mm2.id == mm.id
131
+ assert mm2.age == mm.age
132
+ assert mm2.cool == mm.cool
133
+
134
+ mm2.name = "Travis 2"
135
+ mm2.save(:dirty=>true)
136
+
137
+ # todo: how do we assert this?
138
+
139
+ end
140
+
141
+ # http://api.rubyonrails.org/classes/ActiveRecord/Dirty.html#M002136
142
+ def test_changed
143
+ mm = MyModel.new
144
+ mm.name = "Travis"
145
+ mm.age = 32
146
+ mm.cool = true
147
+ mm.save
148
+
149
+ puts 'changed?=' + mm.changed?.to_s
150
+ assert !mm.changed?
151
+ assert mm.changed.size == 0
152
+ assert mm.changes.size == 0
153
+ assert !mm.name_changed?
154
+
155
+ mm.name = "Jim"
156
+ assert mm.changed?
157
+ assert mm.changed.size == 1
158
+ assert mm.changed[0] == "name"
159
+
160
+ assert mm.changes.size == 1
161
+ puts 'CHANGES=' + mm.changes.inspect
162
+ assert mm.changes["name"][0] == "Travis"
163
+ assert mm.changes["name"][1] == "Jim"
164
+
165
+ assert mm.name_changed?
166
+ assert mm.name_was == "Travis"
167
+ assert mm.name_change[0] == "Travis"
168
+ assert mm.name_change[1] == "Jim"
169
+
170
+ end
171
+
23
172
  def test_count
173
+
174
+ SimpleRecord.stats.clear
175
+
24
176
  count = MyModel.find(:count) # select 1
25
177
  assert count > 0
26
178
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appoxy-simple_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Reeder