appoxy-simple_record 1.0.18 → 1.0.19
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/simple_record.rb +41 -8
- metadata +2 -2
data/lib/simple_record.rb
CHANGED
@@ -28,7 +28,26 @@ require 'sdb/active_sdb'
|
|
28
28
|
|
29
29
|
module SimpleRecord
|
30
30
|
|
31
|
-
|
31
|
+
|
32
|
+
# Create a new handle to an Sdb account. All handles share the same per process or per thread
|
33
|
+
# HTTP connection to Amazon Sdb. Each handle is for a specific account.
|
34
|
+
# The +params+ are passed through as-is to RightAws::SdbInterface.new
|
35
|
+
# Params:
|
36
|
+
# { :server => 'sdb.amazonaws.com' # Amazon service host: 'sdb.amazonaws.com'(default)
|
37
|
+
# :port => 443 # Amazon service port: 80(default) or 443
|
38
|
+
# :protocol => 'https' # Amazon service protocol: 'http'(default) or 'https'
|
39
|
+
# :signature_version => '0' # The signature version : '0' or '1'(default)
|
40
|
+
# :connection_mode => :default # options are
|
41
|
+
# :default (will use best known safe (as in won't need explicit close) option, may change in the future)
|
42
|
+
# :per_request (opens and closes a connection on every request to SDB)
|
43
|
+
# :single (one thread across entire app)
|
44
|
+
# :per_thread (one connection per thread)
|
45
|
+
# :pool (uses a connection pool with a maximum number of connections - NOT IMPLEMENTED YET)
|
46
|
+
# :logger => Logger Object # Logger instance: logs to STDOUT if omitted
|
47
|
+
# :nil_representation => 'mynil'} # interpret Ruby nil as this string value; i.e. use this string in SDB to represent Ruby nils (default is the string 'nil')
|
48
|
+
def self.establish_connection(aws_access_key=nil, aws_secret_key=nil, params={})
|
49
|
+
RightAws::ActiveSdb.establish_connection(aws_access_key, aws_secret_key, params)
|
50
|
+
end
|
32
51
|
|
33
52
|
class Base < RightAws::ActiveSdb::Base
|
34
53
|
|
@@ -134,6 +153,19 @@ module SimpleRecord
|
|
134
153
|
end
|
135
154
|
end
|
136
155
|
|
156
|
+
def self.has_ints(*args)
|
157
|
+
has_attributes(args)
|
158
|
+
are_ints(args)
|
159
|
+
end
|
160
|
+
def self.has_dates(*args)
|
161
|
+
has_attributes(args)
|
162
|
+
are_dates(args)
|
163
|
+
end
|
164
|
+
def self.has_booleans(*args)
|
165
|
+
has_attributes(args)
|
166
|
+
are_booleans(args)
|
167
|
+
end
|
168
|
+
|
137
169
|
@@ints = []
|
138
170
|
def self.are_ints(*args)
|
139
171
|
# puts 'calling are_ints: ' + args.inspect
|
@@ -243,7 +275,7 @@ module SimpleRecord
|
|
243
275
|
end
|
244
276
|
end
|
245
277
|
|
246
|
-
|
278
|
+
|
247
279
|
# Define writer method for setting the _id directly without the associated object
|
248
280
|
send(:define_method, arg_id + "=") do |value|
|
249
281
|
if value.nil?
|
@@ -325,7 +357,7 @@ module SimpleRecord
|
|
325
357
|
|
326
358
|
def self.pad_and_offset(x)
|
327
359
|
# todo: add Float, etc
|
328
|
-
|
360
|
+
# puts 'padding=' + x.class.name + " -- " + x.inspect
|
329
361
|
if x.kind_of? Integer
|
330
362
|
x += @@offset
|
331
363
|
x_str = x.to_s
|
@@ -333,7 +365,7 @@ module SimpleRecord
|
|
333
365
|
x_str = '0' + x_str while x_str.size < 20
|
334
366
|
return x_str
|
335
367
|
elsif x.respond_to?(:iso8601)
|
336
|
-
|
368
|
+
# puts x.class.name + ' responds to iso8601'
|
337
369
|
#
|
338
370
|
# There is an issue here where Time.iso8601 on an incomparable value to DateTime.iso8601.
|
339
371
|
# Amazon suggests: 2008-02-10T16:52:01.000-05:00
|
@@ -344,7 +376,7 @@ module SimpleRecord
|
|
344
376
|
else
|
345
377
|
x_str = x.getutc.strftime(@@date_format)
|
346
378
|
end
|
347
|
-
|
379
|
+
# puts 'utc=' + x_str
|
348
380
|
return x_str
|
349
381
|
else
|
350
382
|
return x
|
@@ -420,7 +452,8 @@ module SimpleRecord
|
|
420
452
|
end
|
421
453
|
end
|
422
454
|
end
|
423
|
-
|
455
|
+
|
456
|
+
def convert_dates_to_sdb()
|
424
457
|
if !@@dates.nil?
|
425
458
|
for i in @@dates
|
426
459
|
# puts 'int encoding: ' + i.to_s
|
@@ -710,7 +743,7 @@ This is done on getters now
|
|
710
743
|
options = params[1]
|
711
744
|
# puts 'options=' + options.inspect
|
712
745
|
convert_condition_params(options)
|
713
|
-
|
746
|
+
# puts 'after collect=' + options.inspect
|
714
747
|
|
715
748
|
results = all ? [] : nil
|
716
749
|
begin
|
@@ -781,7 +814,7 @@ This is done on getters now
|
|
781
814
|
class_name = results.class.name
|
782
815
|
id = results.id
|
783
816
|
cache_key = self.cache_key(class_name, id)
|
784
|
-
|
817
|
+
puts 'caching result at ' + cache_key + ': ' + results.inspect
|
785
818
|
@@cache_store.write(cache_key, results, :expires_in =>30)
|
786
819
|
end
|
787
820
|
end
|
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.0.
|
4
|
+
version: 1.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Reeder
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-06-
|
13
|
+
date: 2009-06-28 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|