simple_record 1.4.19 → 1.5.1
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 +3 -3
- data/lib/simple_record.rb +35 -35
- data/lib/simple_record/attributes.rb +3 -0
- data/lib/simple_record/rails2.rb +30 -0
- data/test/temp.rb +3 -0
- data/test/test_rails3.rb +24 -0
- metadata +7 -4
data/README.markdown
CHANGED
|
@@ -100,15 +100,15 @@ Querying is similar to ActiveRecord for the most part.
|
|
|
100
100
|
|
|
101
101
|
To find all objects that match conditions returned in an Array:
|
|
102
102
|
|
|
103
|
-
Company.find(:all, :conditions => ["
|
|
103
|
+
Company.find(:all, :conditions => ["created > ?", 10.days.ago], :order=>"name", :limit=>50)
|
|
104
104
|
|
|
105
105
|
To find a single object:
|
|
106
106
|
|
|
107
|
-
Company.find(:first, :conditions => ["name = ? AND division = ? AND
|
|
107
|
+
Company.find(:first, :conditions => ["name = ? AND division = ? AND created > ?", "Appoxy", "West", 10.days.ago ])
|
|
108
108
|
|
|
109
109
|
To count objects:
|
|
110
110
|
|
|
111
|
-
Company.find(:count, :conditions => ["name = ? AND division = ? AND
|
|
111
|
+
Company.find(:count, :conditions => ["name = ? AND division = ? AND created > ?", "Appoxy", "West", 10.days.ago ])
|
|
112
112
|
|
|
113
113
|
You can also the dynamic method style, for instance the line below is the same as the Company.find(:first....) line above:
|
|
114
114
|
|
data/lib/simple_record.rb
CHANGED
|
@@ -37,6 +37,7 @@ require File.expand_path(File.dirname(__FILE__) + "/simple_record/errors")
|
|
|
37
37
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/json")
|
|
38
38
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/logging")
|
|
39
39
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/password")
|
|
40
|
+
require File.expand_path(File.dirname(__FILE__) + "/simple_record/rails2")
|
|
40
41
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/results_array")
|
|
41
42
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/stats")
|
|
42
43
|
require File.expand_path(File.dirname(__FILE__) + "/simple_record/translations")
|
|
@@ -125,6 +126,7 @@ module SimpleRecord
|
|
|
125
126
|
SimpleRecord::ActiveSdb.establish_connection(aws_access_key, aws_secret_key, @@options)
|
|
126
127
|
if options[:connection_mode] == :per_thread
|
|
127
128
|
@@auto_close_s3 = true
|
|
129
|
+
# todo: should we init this only when needed?
|
|
128
130
|
@@s3 = Aws::S3.new(SimpleRecord.aws_access_key, SimpleRecord.aws_secret_key, {:connection_mode=>:per_thread})
|
|
129
131
|
end
|
|
130
132
|
end
|
|
@@ -164,6 +166,16 @@ module SimpleRecord
|
|
|
164
166
|
include SimpleRecord::Logging
|
|
165
167
|
extend SimpleRecord::Logging::ClassMethods
|
|
166
168
|
|
|
169
|
+
# puts 'Is ActiveModel defined? ' + defined?(ActiveModel).inspect
|
|
170
|
+
if defined?(ActiveModel)
|
|
171
|
+
extend ActiveModel::Naming
|
|
172
|
+
include ActiveModel::Conversion
|
|
173
|
+
include ActiveModel::Validations
|
|
174
|
+
else
|
|
175
|
+
attr_accessor :errors
|
|
176
|
+
include SimpleRecord::Rails2
|
|
177
|
+
end
|
|
178
|
+
|
|
167
179
|
|
|
168
180
|
def self.extended(base)
|
|
169
181
|
|
|
@@ -185,7 +197,7 @@ module SimpleRecord
|
|
|
185
197
|
#we have to handle the virtuals.
|
|
186
198
|
Attributes.handle_virtuals(attrs)
|
|
187
199
|
|
|
188
|
-
@errors=SimpleRecord_errors.new
|
|
200
|
+
# @errors=SimpleRecord_errors.new
|
|
189
201
|
@dirty = {}
|
|
190
202
|
|
|
191
203
|
@attributes = {} # sdb values
|
|
@@ -215,6 +227,12 @@ module SimpleRecord
|
|
|
215
227
|
end
|
|
216
228
|
|
|
217
229
|
|
|
230
|
+
def persisted?
|
|
231
|
+
true
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
218
236
|
def defined_attributes_local
|
|
219
237
|
# todo: store this somewhere so it doesn't keep going through this
|
|
220
238
|
ret = self.class.defined_attributes
|
|
@@ -222,7 +240,7 @@ module SimpleRecord
|
|
|
222
240
|
end
|
|
223
241
|
|
|
224
242
|
|
|
225
|
-
|
|
243
|
+
|
|
226
244
|
|
|
227
245
|
class << self;
|
|
228
246
|
attr_accessor :domain_prefix
|
|
@@ -380,43 +398,12 @@ module SimpleRecord
|
|
|
380
398
|
return false
|
|
381
399
|
end
|
|
382
400
|
|
|
383
|
-
def valid?
|
|
384
|
-
errors.clear
|
|
385
|
-
|
|
386
|
-
# run_callbacks(:validate)
|
|
387
|
-
validate
|
|
388
|
-
|
|
389
|
-
if new_record?
|
|
390
|
-
# run_callbacks(:validate_on_create)
|
|
391
|
-
validate_on_create
|
|
392
|
-
else
|
|
393
|
-
# run_callbacks(:validate_on_update)
|
|
394
|
-
validate_on_update
|
|
395
|
-
end
|
|
396
|
-
|
|
397
|
-
errors.empty?
|
|
398
|
-
end
|
|
399
401
|
|
|
400
402
|
def new_record?
|
|
401
403
|
# todo: new_record in activesdb should align with how we're defining a new record here, ie: if id is nil
|
|
402
404
|
super
|
|
403
405
|
end
|
|
404
406
|
|
|
405
|
-
def invalid?
|
|
406
|
-
!valid?
|
|
407
|
-
end
|
|
408
|
-
|
|
409
|
-
def validate
|
|
410
|
-
true
|
|
411
|
-
end
|
|
412
|
-
|
|
413
|
-
def validate_on_create
|
|
414
|
-
true
|
|
415
|
-
end
|
|
416
|
-
|
|
417
|
-
def validate_on_update
|
|
418
|
-
true
|
|
419
|
-
end
|
|
420
407
|
|
|
421
408
|
@create_domain_called = false
|
|
422
409
|
|
|
@@ -561,6 +548,19 @@ module SimpleRecord
|
|
|
561
548
|
end
|
|
562
549
|
|
|
563
550
|
|
|
551
|
+
def validate
|
|
552
|
+
true
|
|
553
|
+
end
|
|
554
|
+
|
|
555
|
+
def validate_on_create
|
|
556
|
+
true
|
|
557
|
+
end
|
|
558
|
+
|
|
559
|
+
def validate_on_update
|
|
560
|
+
true
|
|
561
|
+
end
|
|
562
|
+
|
|
563
|
+
|
|
564
564
|
def pre_save(options)
|
|
565
565
|
|
|
566
566
|
is_create = self[:id].nil?
|
|
@@ -571,7 +571,7 @@ module SimpleRecord
|
|
|
571
571
|
|
|
572
572
|
is_create ? validate_on_create : validate_on_update
|
|
573
573
|
# puts 'AFTER VALIDATIONS, ERRORS=' + errors.inspect
|
|
574
|
-
if (
|
|
574
|
+
if (!errors.nil? && errors.size > 0)
|
|
575
575
|
# puts 'THERE ARE ERRORS, returning false'
|
|
576
576
|
return false
|
|
577
577
|
end
|
|
@@ -1138,7 +1138,7 @@ module SimpleRecord
|
|
|
1138
1138
|
|
|
1139
1139
|
# This is simply a place holder so we don't keep doing gets to s3 or simpledb if already checked.
|
|
1140
1140
|
class RemoteNil
|
|
1141
|
-
|
|
1141
|
+
|
|
1142
1142
|
end
|
|
1143
1143
|
|
|
1144
1144
|
|
|
@@ -146,6 +146,9 @@ module SimpleRecord
|
|
|
146
146
|
#
|
|
147
147
|
# This method will also create an {association)_id method that will return the ID of the foreign object
|
|
148
148
|
# without actually materializing it.
|
|
149
|
+
#
|
|
150
|
+
# options:
|
|
151
|
+
# :class_name=>"User" - to change the default class to use
|
|
149
152
|
def belongs_to(association_id, options = {})
|
|
150
153
|
arg = association_id
|
|
151
154
|
arg_s = arg.to_s
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Only used if ActiveModel is not present
|
|
2
|
+
|
|
3
|
+
module SimpleRecord
|
|
4
|
+
module Rails2
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def valid?
|
|
8
|
+
errors.clear
|
|
9
|
+
|
|
10
|
+
# run_callbacks(:validate)
|
|
11
|
+
validate
|
|
12
|
+
|
|
13
|
+
if new_record?
|
|
14
|
+
# run_callbacks(:validate_on_create)
|
|
15
|
+
validate_on_create
|
|
16
|
+
else
|
|
17
|
+
# run_callbacks(:validate_on_update)
|
|
18
|
+
validate_on_update
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
errors.empty?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def invalid?
|
|
26
|
+
!valid?
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
data/test/temp.rb
CHANGED
data/test/test_rails3.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'active_model'
|
|
3
|
+
require File.join(File.dirname(__FILE__), "/../lib/simple_record")
|
|
4
|
+
require File.join(File.dirname(__FILE__), "./test_helpers")
|
|
5
|
+
require File.join(File.dirname(__FILE__), "./test_base")
|
|
6
|
+
require "yaml"
|
|
7
|
+
require 'aws'
|
|
8
|
+
require_relative 'my_model'
|
|
9
|
+
require_relative 'my_child_model'
|
|
10
|
+
require_relative 'model_with_enc'
|
|
11
|
+
|
|
12
|
+
# To test things related to rails 3 like ActiveModel usage.
|
|
13
|
+
class TestRails3 < TestBase
|
|
14
|
+
|
|
15
|
+
def test_active_model_defined
|
|
16
|
+
|
|
17
|
+
my_model = MyModel.new
|
|
18
|
+
|
|
19
|
+
assert (defined?(MyModel.model_name))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
metadata
CHANGED
|
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
|
4
4
|
prerelease: false
|
|
5
5
|
segments:
|
|
6
6
|
- 1
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
version: 1.
|
|
7
|
+
- 5
|
|
8
|
+
- 1
|
|
9
|
+
version: 1.5.1
|
|
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-11-05 00:00:00 -07:00
|
|
20
20
|
default_executable:
|
|
21
21
|
dependencies:
|
|
22
22
|
- !ruby/object:Gem::Dependency
|
|
@@ -51,6 +51,7 @@ files:
|
|
|
51
51
|
- lib/simple_record/json.rb
|
|
52
52
|
- lib/simple_record/logging.rb
|
|
53
53
|
- lib/simple_record/password.rb
|
|
54
|
+
- lib/simple_record/rails2.rb
|
|
54
55
|
- lib/simple_record/results_array.rb
|
|
55
56
|
- lib/simple_record/stats.rb
|
|
56
57
|
- lib/simple_record/translations.rb
|
|
@@ -73,6 +74,7 @@ files:
|
|
|
73
74
|
- test/test_lobs.rb
|
|
74
75
|
- test/test_marshalled.rb
|
|
75
76
|
- test/test_pagination.rb
|
|
77
|
+
- test/test_rails3.rb
|
|
76
78
|
- test/test_results_array.rb
|
|
77
79
|
- test/test_usage.rb
|
|
78
80
|
has_rdoc: true
|
|
@@ -126,5 +128,6 @@ test_files:
|
|
|
126
128
|
- test/test_lobs.rb
|
|
127
129
|
- test/test_marshalled.rb
|
|
128
130
|
- test/test_pagination.rb
|
|
131
|
+
- test/test_rails3.rb
|
|
129
132
|
- test/test_results_array.rb
|
|
130
133
|
- test/test_usage.rb
|