sdb_dal 0.0.1 → 0.0.2
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/sdb_dal/acts_as_sdb_application.rb +11 -0
- data/lib/sdb_dal/domain_object.rb +5 -8
- data/lib/sdb_dal/repository_factory.rb +95 -0
- data/lib/sdb_dal.rb +2 -0
- metadata +3 -1
@@ -7,7 +7,6 @@ require File.dirname(__FILE__) +"/lazy_loading_text.rb"
|
|
7
7
|
module SdbDal
|
8
8
|
class DomainObject
|
9
9
|
|
10
|
-
@@repository =nil
|
11
10
|
@@items_to_commit=nil
|
12
11
|
@@transaction_depth=0
|
13
12
|
attr_accessor :sdb_key
|
@@ -542,10 +541,8 @@ def destroy(options={})
|
|
542
541
|
if @repository
|
543
542
|
return @repository
|
544
543
|
end
|
545
|
-
|
546
|
-
|
547
|
-
end
|
548
|
-
return $repository
|
544
|
+
|
545
|
+
return self.class.repository
|
549
546
|
end
|
550
547
|
class << self
|
551
548
|
def repository(options=nil)
|
@@ -553,9 +550,9 @@ def destroy(options={})
|
|
553
550
|
if options and options.has_key?(:repository)
|
554
551
|
return options[:repository]
|
555
552
|
end
|
556
|
-
|
557
|
-
|
558
|
-
|
553
|
+
|
554
|
+
$repository ||= RepositoryFactory.instance(options)
|
555
|
+
|
559
556
|
return $repository
|
560
557
|
end
|
561
558
|
def find(*arguments)
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require "sdb_dal/repository.rb"
|
2
|
+
require "sdb_dal/memory_repository.rb"
|
3
|
+
|
4
|
+
module SdbDal
|
5
|
+
class RepositoryFactory
|
6
|
+
#if this is rails insert code into application
|
7
|
+
|
8
|
+
|
9
|
+
def self.instance(options={})
|
10
|
+
if options and options.has_key?(:repository)
|
11
|
+
return options[:repository]
|
12
|
+
end
|
13
|
+
if @repository
|
14
|
+
return @repository
|
15
|
+
end
|
16
|
+
|
17
|
+
sdb_dal_config=find_config_section
|
18
|
+
|
19
|
+
if sdb_dal_config
|
20
|
+
if sdb_dal_config.has_key?("repository_class")
|
21
|
+
repo_class=eval sdb_dal_config["repository_class"]
|
22
|
+
else
|
23
|
+
repo_class=SdbDal::Repository
|
24
|
+
end
|
25
|
+
domain_prefix= sdb_dal_config["sdb_domain_prefix"]
|
26
|
+
clob_bucket= sdb_dal_config["s3_clob_bucket"]
|
27
|
+
aws_key_id = sdb_dal_config["aws_key_id"]
|
28
|
+
aws_secret_key = sdb_dal_config["aws_secret_key"]
|
29
|
+
memcache_servers= sdb_dal_config['memcache_servers']
|
30
|
+
memcache_servers = memcache_servers.split(",") if memcache_servers
|
31
|
+
|
32
|
+
return repo_class.new(domain_prefix,clob_bucket,aws_key_id,aws_secret_key,memcache_servers)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
def self.find_config_section
|
39
|
+
return $sdb_dal_config if $sdb_dal_config
|
40
|
+
config_file_path=nil
|
41
|
+
config_section=nil
|
42
|
+
|
43
|
+
#when using rails use config/database.yml
|
44
|
+
if const_defined?(:RAILS_ROOT) and ENV.has_key?('RAILS_ENV')
|
45
|
+
config_file_path = File.join("#{RAILS_ROOT}","config","database.yml")
|
46
|
+
|
47
|
+
config_section =ENV['RAILS_ENV']+"_sdb_dal"
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
else
|
52
|
+
#when not using rails use try database.yml then try config/database.yml
|
53
|
+
|
54
|
+
if File.exists?("database.yml")
|
55
|
+
|
56
|
+
config_file_path = "database.yml"
|
57
|
+
elsif File.exists?(File.join("config", "database.yml"))
|
58
|
+
config_file_path = File.join("config", "database.yml")
|
59
|
+
end
|
60
|
+
|
61
|
+
config_section =(ENV['SDB_DAL_ENV'] || "production")+"_sdb_dal"
|
62
|
+
end
|
63
|
+
if config_file_path and config_section
|
64
|
+
config_file = YAML.load(File.open( config_file_path))
|
65
|
+
|
66
|
+
$sdb_dal_config = config_file[config_section]
|
67
|
+
end
|
68
|
+
return $sdb_dal_config
|
69
|
+
end
|
70
|
+
def self.set_repository(repository)
|
71
|
+
@repository=repository
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
def self.qualified_const_get(str)
|
76
|
+
path = str.to_s.split('::')
|
77
|
+
from_root = path[0].empty?
|
78
|
+
if from_root
|
79
|
+
from_root = []
|
80
|
+
path = path[1..-1]
|
81
|
+
else
|
82
|
+
start_ns = ((Class === self)||(Module === self)) ? self : self.class
|
83
|
+
from_root = start_ns.to_s.split('::')
|
84
|
+
end
|
85
|
+
until from_root.empty?
|
86
|
+
begin
|
87
|
+
return (from_root+path).inject(Object) { |ns,name| ns.const_get(name) }
|
88
|
+
rescue NameError
|
89
|
+
from_root.delete_at(-1)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
path.inject(Object) { |ns,name| ns.const_get(name) }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
data/lib/sdb_dal.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sdb_dal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Knight
|
@@ -23,6 +23,7 @@ extra_rdoc_files: []
|
|
23
23
|
|
24
24
|
files:
|
25
25
|
- ./lib/sdb_dal.rb
|
26
|
+
- ./lib/sdb_dal/acts_as_sdb_application.rb
|
26
27
|
- ./lib/sdb_dal/and_condition.rb
|
27
28
|
- ./lib/sdb_dal/attribute_range.rb
|
28
29
|
- ./lib/sdb_dal/domain_attribute_description.rb
|
@@ -39,6 +40,7 @@ files:
|
|
39
40
|
- ./lib/sdb_dal/query_string_auth_generator.rb
|
40
41
|
- ./lib/sdb_dal/reference.rb
|
41
42
|
- ./lib/sdb_dal/repository.rb
|
43
|
+
- ./lib/sdb_dal/repository_factory.rb
|
42
44
|
- ./lib/sdb_dal/s3.rb
|
43
45
|
- ./lib/sdb_dal/sdb_formatter.rb
|
44
46
|
- ./lib/sdb_dal/starts_with_condition.rb
|