simple_record 1.1.17 → 1.1.20
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 +5 -5
- data/lib/simple_record.rb +22 -23
- data/lib/stats.rb +16 -16
- data/test/my_child_model.rb +34 -34
- data/test/paging_array_test.rb +14 -14
- data/test/temp_test.rb +63 -63
- data/test/test_simple_record.rb +0 -4
- metadata +3 -3
data/README.markdown
CHANGED
@@ -14,14 +14,14 @@ An ActiveRecord interface for SimpleDB. Can be used as a drop in replacement fo
|
|
14
14
|
|
15
15
|
1. Install gems
|
16
16
|
|
17
|
-
|
17
|
+
ONE TIME: Be sure to add the new gemcutter source:
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
gem install gemcutter
|
20
|
+
gem tumble
|
21
21
|
|
22
|
-
|
22
|
+
THEN (you should have http://gemcutter.org in your sources and it MUST be above rubyforge.org):
|
23
23
|
|
24
|
-
|
24
|
+
gem install simple_record
|
25
25
|
|
26
26
|
2. Create a model
|
27
27
|
|
data/lib/simple_record.rb
CHANGED
@@ -81,11 +81,27 @@ module SimpleRecord
|
|
81
81
|
|
82
82
|
|
83
83
|
def initialize(attrs={})
|
84
|
-
|
85
|
-
|
84
|
+
# todo: Need to deal with objects passed in. iterate through belongs_to perhaps and if in attrs, set the objects id rather than the object itself
|
85
|
+
|
86
|
+
if params[0]
|
87
|
+
#we have to handle the virtuals. Right now, this assumes that all parameters are passed from inside an array
|
88
|
+
#this is the usually the case when the parameters are passed passed via POST and obtained from the params array
|
89
|
+
@@virtuals.each do |virtual|
|
90
|
+
#we first copy the information for the virtual to an instance variable of the same name
|
91
|
+
eval("@#{virtual}=params[0]['#{virtual}']")
|
92
|
+
#and then remove the parameter before it is passed to initialize, so that it is NOT sent to SimpleDB
|
93
|
+
eval("params[0].delete('#{virtual}')")
|
94
|
+
end
|
95
|
+
super(*params)
|
96
|
+
else
|
97
|
+
super()
|
98
|
+
end
|
99
|
+
@errors=SimpleRecord_errors.new
|
100
|
+
@dirty = {}
|
86
101
|
end
|
87
102
|
|
88
103
|
|
104
|
+
|
89
105
|
# todo: move into Callbacks module
|
90
106
|
#this bit of code creates a "run_blank" function for everything value in the @@callbacks array.
|
91
107
|
#this function can then be inserted in the appropriate place in the save, new, destroy, etc overrides
|
@@ -472,27 +488,6 @@ module SimpleRecord
|
|
472
488
|
|
473
489
|
def self.has_one(*args)
|
474
490
|
|
475
|
-
end
|
476
|
-
|
477
|
-
def initialize(*params)
|
478
|
-
|
479
|
-
if params[0]
|
480
|
-
#we have to handle the virtuals. Right now, this assumes that all parameters are passed from inside an array
|
481
|
-
#this is the usually the case when the parameters are passed passed via POST and obtained from the params array
|
482
|
-
@@virtuals.each do |virtual|
|
483
|
-
#we first copy the information for the virtual to an instance variable of the same name
|
484
|
-
eval("@#{virtual}=params[0]['#{virtual}']")
|
485
|
-
#and then remove the parameter before it is passed to initialize, so that it is NOT sent to SimpleDB
|
486
|
-
eval("params[0].delete('#{virtual}')")
|
487
|
-
end
|
488
|
-
super(*params)
|
489
|
-
else
|
490
|
-
super()
|
491
|
-
end
|
492
|
-
@errors=SimpleRecord_errors.new
|
493
|
-
@dirty = {}
|
494
|
-
|
495
|
-
|
496
491
|
end
|
497
492
|
|
498
493
|
def clear_errors
|
@@ -1094,6 +1089,10 @@ module SimpleRecord
|
|
1094
1089
|
find(:all, *params)
|
1095
1090
|
end
|
1096
1091
|
|
1092
|
+
def empty?
|
1093
|
+
return load.empty?
|
1094
|
+
end
|
1095
|
+
|
1097
1096
|
def build(*params)
|
1098
1097
|
params[0][@referencename]=@referencevalue
|
1099
1098
|
eval(@subname).new(*params)
|
data/lib/stats.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
module SimpleRecord
|
2
|
-
class Stats
|
3
|
-
attr_accessor :selects, :puts
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@selects = 0
|
7
|
-
@puts = 0
|
8
|
-
end
|
9
|
-
|
10
|
-
def clear
|
11
|
-
self.selects = 0
|
12
|
-
self.puts = 0
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
1
|
+
module SimpleRecord
|
2
|
+
class Stats
|
3
|
+
attr_accessor :selects, :puts
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@selects = 0
|
7
|
+
@puts = 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def clear
|
11
|
+
self.selects = 0
|
12
|
+
self.puts = 0
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
data/test/my_child_model.rb
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
|
2
|
-
require 'my_model'
|
3
|
-
|
4
|
-
class MyChildModel < SimpleRecord::Base
|
5
|
-
belongs_to :my_model
|
6
|
-
has_attributes :name, :child_attr
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
=begin
|
12
|
-
|
13
|
-
|
14
|
-
puts 'word'
|
15
|
-
|
16
|
-
mm = MyModel.new
|
17
|
-
puts 'word2'
|
18
|
-
|
19
|
-
mcm = MyChildModel.new
|
20
|
-
|
21
|
-
puts 'mcm instance methods=' + MyChildModel.instance_methods(true).inspect
|
22
|
-
#puts 'mcm=' + mcm.instance_methods(false)
|
23
|
-
puts 'mcm class vars = ' + mcm.class.class_variables.inspect
|
24
|
-
puts mcm.class == MyChildModel
|
25
|
-
puts 'saved? ' + mm.save.to_s
|
26
|
-
puts mm.errors.inspect
|
27
|
-
|
28
|
-
puts "mm attributes=" + MyModel.defined_attributes.inspect
|
29
|
-
puts "mcm attributes=" + MyChildModel.defined_attributes.inspect
|
30
|
-
|
31
|
-
mcm2 = MyChildModel.new
|
32
|
-
puts "mcm2 attributes=" + MyChildModel.defined_attributes.inspect
|
33
|
-
|
34
|
-
=end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
|
2
|
+
require 'my_model'
|
3
|
+
|
4
|
+
class MyChildModel < SimpleRecord::Base
|
5
|
+
belongs_to :my_model
|
6
|
+
has_attributes :name, :child_attr
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
=begin
|
12
|
+
|
13
|
+
|
14
|
+
puts 'word'
|
15
|
+
|
16
|
+
mm = MyModel.new
|
17
|
+
puts 'word2'
|
18
|
+
|
19
|
+
mcm = MyChildModel.new
|
20
|
+
|
21
|
+
puts 'mcm instance methods=' + MyChildModel.instance_methods(true).inspect
|
22
|
+
#puts 'mcm=' + mcm.instance_methods(false)
|
23
|
+
puts 'mcm class vars = ' + mcm.class.class_variables.inspect
|
24
|
+
puts mcm.class == MyChildModel
|
25
|
+
puts 'saved? ' + mm.save.to_s
|
26
|
+
puts mm.errors.inspect
|
27
|
+
|
28
|
+
puts "mm attributes=" + MyModel.defined_attributes.inspect
|
29
|
+
puts "mcm attributes=" + MyChildModel.defined_attributes.inspect
|
30
|
+
|
31
|
+
mcm2 = MyChildModel.new
|
32
|
+
puts "mcm2 attributes=" + MyChildModel.defined_attributes.inspect
|
33
|
+
|
34
|
+
=end
|
data/test/paging_array_test.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + "/../lib/results_array")
|
3
|
-
|
4
|
-
array = SimpleRecord::ResultsArray.new()
|
5
|
-
#array.extend(ResultsArray)
|
6
|
-
|
7
|
-
500.times do |i|
|
8
|
-
array << "_ob_" + i.to_s
|
9
|
-
end
|
10
|
-
|
11
|
-
array.each do |v|
|
12
|
-
puts v.to_s
|
13
|
-
end
|
14
|
-
|
1
|
+
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/results_array")
|
3
|
+
|
4
|
+
array = SimpleRecord::ResultsArray.new()
|
5
|
+
#array.extend(ResultsArray)
|
6
|
+
|
7
|
+
500.times do |i|
|
8
|
+
array << "_ob_" + i.to_s
|
9
|
+
end
|
10
|
+
|
11
|
+
array.each do |v|
|
12
|
+
puts v.to_s
|
13
|
+
end
|
14
|
+
|
15
15
|
puts array[10]
|
data/test/temp_test.rb
CHANGED
@@ -1,63 +1,63 @@
|
|
1
|
-
# rubymine won't run 1.9 tests
|
2
|
-
|
3
|
-
require 'minitest/unit'
|
4
|
-
require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
|
5
|
-
require "yaml"
|
6
|
-
require 'right_aws'
|
7
|
-
require 'my_model'
|
8
|
-
require 'my_child_model'
|
9
|
-
|
10
|
-
|
11
|
-
def setup
|
12
|
-
@config = YAML::load(File.read('test-config.yml'))
|
13
|
-
puts 'akey=' + @config['amazon']['access_key']
|
14
|
-
puts 'skey=' + @config['amazon']['secret_key']
|
15
|
-
RightAws::ActiveSdb.establish_connection(@config['amazon']['access_key'], @config['amazon']['secret_key'], :port=>80, :protocol=>"http")
|
16
|
-
SimpleRecord::Base.set_domain_prefix("simplerecord_tests_")
|
17
|
-
end
|
18
|
-
|
19
|
-
def teardown
|
20
|
-
RightAws::ActiveSdb.close_connection()
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_dates
|
24
|
-
mm = MyModel.new
|
25
|
-
mm.name = "Travis"
|
26
|
-
mm.age = 32
|
27
|
-
mm.cool = true
|
28
|
-
mm.created = DateTime.now - 10
|
29
|
-
mm.updated = DateTime.now
|
30
|
-
mm.birthday = Time.now - (3600 * 24 * 365 * 10)
|
31
|
-
puts 'before save=' + mm.inspect
|
32
|
-
mm.save
|
33
|
-
puts 'after save=' + mm.inspect
|
34
|
-
|
35
|
-
mms = MyModel.find(:all, :conditions => ["created > ?", DateTime.now - 1])
|
36
|
-
puts 'mms=' + mms.inspect
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_date_comparisons
|
41
|
-
|
42
|
-
t = SimpleRecord::Base.pad_and_offset(Time.now)
|
43
|
-
puts t
|
44
|
-
dt = SimpleRecord::Base.pad_and_offset(DateTime.now)
|
45
|
-
puts dt
|
46
|
-
dt_tomorrow = SimpleRecord::Base.pad_and_offset(DateTime.now + 1)
|
47
|
-
|
48
|
-
|
49
|
-
puts 'compare=' + (t <=> dt).to_s
|
50
|
-
puts 'compare=' + (t <=> dt_tomorrow).to_s
|
51
|
-
|
52
|
-
dts = DateTime.parse(dt_tomorrow)
|
53
|
-
puts dts.to_s
|
54
|
-
ts = Time.parse(dt)
|
55
|
-
puts ts.to_s
|
56
|
-
end
|
57
|
-
|
58
|
-
setup
|
59
|
-
|
60
|
-
#test_dates
|
61
|
-
test_date_comparisons
|
62
|
-
|
63
|
-
teardown
|
1
|
+
# rubymine won't run 1.9 tests
|
2
|
+
|
3
|
+
require 'minitest/unit'
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
|
5
|
+
require "yaml"
|
6
|
+
require 'right_aws'
|
7
|
+
require 'my_model'
|
8
|
+
require 'my_child_model'
|
9
|
+
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@config = YAML::load(File.read('test-config.yml'))
|
13
|
+
puts 'akey=' + @config['amazon']['access_key']
|
14
|
+
puts 'skey=' + @config['amazon']['secret_key']
|
15
|
+
RightAws::ActiveSdb.establish_connection(@config['amazon']['access_key'], @config['amazon']['secret_key'], :port=>80, :protocol=>"http")
|
16
|
+
SimpleRecord::Base.set_domain_prefix("simplerecord_tests_")
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
RightAws::ActiveSdb.close_connection()
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_dates
|
24
|
+
mm = MyModel.new
|
25
|
+
mm.name = "Travis"
|
26
|
+
mm.age = 32
|
27
|
+
mm.cool = true
|
28
|
+
mm.created = DateTime.now - 10
|
29
|
+
mm.updated = DateTime.now
|
30
|
+
mm.birthday = Time.now - (3600 * 24 * 365 * 10)
|
31
|
+
puts 'before save=' + mm.inspect
|
32
|
+
mm.save
|
33
|
+
puts 'after save=' + mm.inspect
|
34
|
+
|
35
|
+
mms = MyModel.find(:all, :conditions => ["created > ?", DateTime.now - 1])
|
36
|
+
puts 'mms=' + mms.inspect
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_date_comparisons
|
41
|
+
|
42
|
+
t = SimpleRecord::Base.pad_and_offset(Time.now)
|
43
|
+
puts t
|
44
|
+
dt = SimpleRecord::Base.pad_and_offset(DateTime.now)
|
45
|
+
puts dt
|
46
|
+
dt_tomorrow = SimpleRecord::Base.pad_and_offset(DateTime.now + 1)
|
47
|
+
|
48
|
+
|
49
|
+
puts 'compare=' + (t <=> dt).to_s
|
50
|
+
puts 'compare=' + (t <=> dt_tomorrow).to_s
|
51
|
+
|
52
|
+
dts = DateTime.parse(dt_tomorrow)
|
53
|
+
puts dts.to_s
|
54
|
+
ts = Time.parse(dt)
|
55
|
+
puts ts.to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
setup
|
59
|
+
|
60
|
+
#test_dates
|
61
|
+
test_date_comparisons
|
62
|
+
|
63
|
+
teardown
|
data/test/test_simple_record.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Reeder
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2009-
|
14
|
+
date: 2009-10-12 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies: []
|
17
17
|
|
@@ -54,7 +54,7 @@ requirements: []
|
|
54
54
|
rubyforge_project:
|
55
55
|
rubygems_version: 1.3.5
|
56
56
|
signing_key:
|
57
|
-
specification_version:
|
57
|
+
specification_version: 3
|
58
58
|
summary: Drop in replacement for ActiveRecord to Amazon SimpleDB instead.
|
59
59
|
test_files:
|
60
60
|
- test/my_child_model.rb
|