simple_record 1.4.13 → 1.4.15
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
CHANGED
@@ -193,7 +193,8 @@ values should be stored in S3. Fortunately SimpleRecord takes care of this for y
|
|
193
193
|
string value.
|
194
194
|
|
195
195
|
has_clobs :my_clob
|
196
|
-
|
196
|
+
|
197
|
+
These clob values will be stored in s3 under a bucket named: "#{aws_access_key}_lobs"
|
197
198
|
|
198
199
|
## Tips and Tricks and Things to Know
|
199
200
|
|
@@ -95,6 +95,7 @@ module SimpleRecord
|
|
95
95
|
params_for_count[0] = :count
|
96
96
|
params_for_count[1] = params_for_count[1].dup # for deep clone
|
97
97
|
params_for_count[1].delete(:limit)
|
98
|
+
params_for_count[1].delete(:per_token)
|
98
99
|
|
99
100
|
# puts '@params2=' + @params.inspect
|
100
101
|
# puts 'params_for_count=' + params_for_count.inspect
|
@@ -117,7 +118,12 @@ module SimpleRecord
|
|
117
118
|
limit = options[:limit]
|
118
119
|
# puts 'limit=' + limit.inspect
|
119
120
|
|
120
|
-
@items
|
121
|
+
if i > @items.size
|
122
|
+
i = @items.size
|
123
|
+
end
|
124
|
+
range = i..@items.size
|
125
|
+
# puts 'range=' + range.inspect
|
126
|
+
@items[range].each do |v|
|
121
127
|
# puts "i=" + i.to_s
|
122
128
|
yield v
|
123
129
|
i += 1
|
data/lib/simple_record.rb
CHANGED
@@ -47,6 +47,8 @@ module SimpleRecord
|
|
47
47
|
@@options = {}
|
48
48
|
@@stats = SimpleRecord::Stats.new
|
49
49
|
@@logging = false
|
50
|
+
@@s3 = nil
|
51
|
+
@@auto_close_s3 = false
|
50
52
|
|
51
53
|
class << self;
|
52
54
|
attr_accessor :aws_access_key, :aws_secret_key
|
@@ -105,16 +107,35 @@ module SimpleRecord
|
|
105
107
|
# :per_thread (one connection per thread)
|
106
108
|
# :pool (uses a connection pool with a maximum number of connections - NOT IMPLEMENTED YET)
|
107
109
|
# :logger => Logger Object # Logger instance: logs to STDOUT if omitted
|
108
|
-
def establish_connection(aws_access_key=nil, aws_secret_key=nil,
|
110
|
+
def establish_connection(aws_access_key=nil, aws_secret_key=nil, options={})
|
109
111
|
@aws_access_key = aws_access_key
|
110
112
|
@aws_secret_key = aws_secret_key
|
111
|
-
@@options.merge!(
|
113
|
+
@@options.merge!(options)
|
112
114
|
#puts 'SimpleRecord.establish_connection with options: ' + @@options.inspect
|
113
115
|
SimpleRecord::ActiveSdb.establish_connection(aws_access_key, aws_secret_key, @@options)
|
116
|
+
if options[:connection_mode] == :per_thread
|
117
|
+
@@auto_close_s3 = true
|
118
|
+
@@s3 = Aws::S3.new(SimpleRecord.aws_access_key, SimpleRecord.aws_secret_key, {:connection_mode=>:per_thread})
|
119
|
+
end
|
114
120
|
end
|
115
121
|
|
122
|
+
# Call this to close the connection to SimpleDB.
|
123
|
+
# If you're using this in Rails with per_thread connection mode, you should do this in
|
124
|
+
# an after_filter for each request.
|
116
125
|
def close_connection()
|
117
126
|
SimpleRecord::ActiveSdb.close_connection
|
127
|
+
@@s3.close_connection if @@auto_close_s3
|
128
|
+
end
|
129
|
+
|
130
|
+
# If you'd like to specify the s3 connection to use for LOBs, you can pass it in here.
|
131
|
+
# We recommend that this connection matches the type of connection you're using for SimpleDB,
|
132
|
+
# at least if you're using per_thread connection mode.
|
133
|
+
def s3=(s3)
|
134
|
+
@@s3 = s3
|
135
|
+
end
|
136
|
+
|
137
|
+
def s3
|
138
|
+
@@s3
|
118
139
|
end
|
119
140
|
|
120
141
|
def options
|
@@ -488,6 +509,10 @@ module SimpleRecord
|
|
488
509
|
end
|
489
510
|
|
490
511
|
def s3
|
512
|
+
|
513
|
+
return SimpleRecord.s3 if SimpleRecord.s3
|
514
|
+
# todo: should optimize this somehow, like use the same connection_mode as used in SR
|
515
|
+
# or keep open while looping in ResultsArray.
|
491
516
|
Aws::S3.new(SimpleRecord.aws_access_key, SimpleRecord.aws_secret_key)
|
492
517
|
end
|
493
518
|
|
@@ -11,7 +11,7 @@ require_relative 'model_with_enc'
|
|
11
11
|
# Tests for SimpleRecord
|
12
12
|
#
|
13
13
|
|
14
|
-
class
|
14
|
+
class SimpleRecordTest < TestBase
|
15
15
|
|
16
16
|
|
17
17
|
def test_save_get
|
@@ -26,8 +26,8 @@ class TestSimpleRecord < TestBase
|
|
26
26
|
assert !mm.updated.nil?
|
27
27
|
assert !mm.id.nil?
|
28
28
|
assert mm.age == 32
|
29
|
-
assert mm.cool
|
30
|
-
assert mm.name
|
29
|
+
assert mm.cool == true
|
30
|
+
assert mm.name == "Travis"
|
31
31
|
|
32
32
|
id = mm.id
|
33
33
|
puts 'id=' + id.to_s
|
@@ -39,8 +39,8 @@ class TestSimpleRecord < TestBase
|
|
39
39
|
assert mm2.age == mm.age
|
40
40
|
assert mm2.cool == mm.cool
|
41
41
|
assert mm2.age == 32
|
42
|
-
assert mm2.cool
|
43
|
-
assert mm2.name
|
42
|
+
assert mm2.cool == true
|
43
|
+
assert mm2.name == "Travis"
|
44
44
|
assert mm2.created.is_a? DateTime
|
45
45
|
|
46
46
|
# test nilification
|
@@ -177,8 +177,8 @@ class TestSimpleRecord < TestBase
|
|
177
177
|
assert mm.nickname == mm.name
|
178
178
|
|
179
179
|
mm2 = MyModel.find(mm.id)
|
180
|
-
|
181
|
-
|
180
|
+
assert_equal mm2.nickname, mm.nickname
|
181
|
+
assert_equal mm2.name, mm.name
|
182
182
|
|
183
183
|
|
184
184
|
end
|
@@ -262,7 +262,7 @@ class TestSimpleRecord < TestBase
|
|
262
262
|
assert mmc3.my_model_id == mm2.id
|
263
263
|
assert mmc3.changed?
|
264
264
|
assert mmc3.my_model_changed?
|
265
|
-
assert mmc3.my_model.id
|
265
|
+
assert mmc3.my_model.id == mm2.id
|
266
266
|
|
267
267
|
end
|
268
268
|
|
@@ -541,7 +541,7 @@ class TestSimpleRecord < TestBase
|
|
541
541
|
def test_atts_using_strings_and_symbols
|
542
542
|
mm = MyModel.new({:name=>"myname"})
|
543
543
|
mm2 = MyModel.new({"name"=>"myname"})
|
544
|
-
|
544
|
+
assert_equal(mm.name, mm2.name)
|
545
545
|
|
546
546
|
mm.save
|
547
547
|
mm2.save
|
@@ -549,7 +549,7 @@ class TestSimpleRecord < TestBase
|
|
549
549
|
|
550
550
|
mm = MyModel.find(mm.id)
|
551
551
|
mm2 = MyModel.find(mm2.id)
|
552
|
-
|
552
|
+
assert_equal mm.name, mm2.name
|
553
553
|
end
|
554
554
|
|
555
555
|
def test_constructor_using_belongs_to_ids
|
@@ -559,10 +559,17 @@ class TestSimpleRecord < TestBase
|
|
559
559
|
|
560
560
|
mm2 = MyChildModel.new({"name"=>"myname2", :my_model_id=>mm.id})
|
561
561
|
puts 'mm2=' + mm2.inspect
|
562
|
-
|
562
|
+
assert_equal mm.id, mm2.my_model_id, "#{mm.id} != #{mm2.my_model_id}"
|
563
563
|
mm3 = mm2.my_model
|
564
564
|
puts 'mm3=' + mm3.inspect
|
565
|
-
|
565
|
+
assert_equal mm.name, mm3.name
|
566
|
+
|
567
|
+
mm3 = MyChildModel.create(:my_model_id=>mm.id, :name=>"myname3")
|
568
|
+
|
569
|
+
sleep 2
|
570
|
+
mm4 = MyChildModel.find(mm3.id)
|
571
|
+
assert_equal mm4.my_model_id, mm.id
|
572
|
+
assert !mm4.my_model.nil?
|
566
573
|
|
567
574
|
end
|
568
575
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 1.4.
|
8
|
+
- 15
|
9
|
+
version: 1.4.15
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Travis Reeder
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-10-19 00:00:00 -07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- test/my_child_model.rb
|
62
62
|
- test/my_model.rb
|
63
63
|
- test/paging_array_test.rb
|
64
|
+
- test/simple_record_test.rb
|
64
65
|
- test/temp.rb
|
65
66
|
- test/temp_test.rb
|
66
67
|
- test/test_base.rb
|
@@ -73,7 +74,6 @@ files:
|
|
73
74
|
- test/test_marshalled.rb
|
74
75
|
- test/test_pagination.rb
|
75
76
|
- test/test_results_array.rb
|
76
|
-
- test/test_simple_record.rb
|
77
77
|
- test/test_usage.rb
|
78
78
|
has_rdoc: true
|
79
79
|
homepage: http://github.com/appoxy/simple_record/
|
@@ -114,6 +114,7 @@ test_files:
|
|
114
114
|
- test/my_child_model.rb
|
115
115
|
- test/my_model.rb
|
116
116
|
- test/paging_array_test.rb
|
117
|
+
- test/simple_record_test.rb
|
117
118
|
- test/temp.rb
|
118
119
|
- test/temp_test.rb
|
119
120
|
- test/test_base.rb
|
@@ -126,5 +127,4 @@ test_files:
|
|
126
127
|
- test/test_marshalled.rb
|
127
128
|
- test/test_pagination.rb
|
128
129
|
- test/test_results_array.rb
|
129
|
-
- test/test_simple_record.rb
|
130
130
|
- test/test_usage.rb
|