rails_dm_datastore 0.2.5 → 0.2.6
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.rdoc +4 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/generators/dd_model/dd_model_generator.rb +10 -4
- data/generators/dd_model/templates/model.rb +2 -5
- data/lib/rails_dm_datastore.rb +0 -2
- data/rails_dm_datastore.gemspec +8 -7
- metadata +74 -35
- data/lib/rails_dm_datastore/active_support.rb +0 -42
- data/lib/rails_dm_datastore/multiparameter_assignments.rb +0 -27
data/README.rdoc
CHANGED
@@ -12,6 +12,10 @@ Description goes here.
|
|
12
12
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
13
13
|
* Send me a pull request. Bonus points for topic branches.
|
14
14
|
|
15
|
+
== Build the gem
|
16
|
+
rake gemspec
|
17
|
+
rake build
|
18
|
+
|
15
19
|
== Copyright
|
16
20
|
|
17
21
|
Copyright (c) 2009 joshsmoore. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -19,6 +19,7 @@ begin
|
|
19
19
|
gem.add_dependency 'dm-timestamps', DM_VERSION
|
20
20
|
gem.add_dependency 'dm-validations', DM_VERSION
|
21
21
|
gem.add_dependency 'dm-appengine'
|
22
|
+
gem.add_dependency 'rails_appengine'
|
22
23
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
23
24
|
end
|
24
25
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.6
|
@@ -3,6 +3,11 @@ require 'active_record'
|
|
3
3
|
require 'dm-core'
|
4
4
|
|
5
5
|
class DdModelGenerator < ModelGenerator
|
6
|
+
|
7
|
+
VALID_TYPES = %w{String ByteString Boolean Integer Float DateTime Date
|
8
|
+
Time List StringList Reference SelfReference BlobReference User Blob
|
9
|
+
Text Category Link Email GeoPt IM PhoneNumber PostalAddress Rating
|
10
|
+
AncestorKey Key Object Serial} # these last few are also valid
|
6
11
|
|
7
12
|
def manifest
|
8
13
|
record do |m|
|
@@ -15,10 +20,11 @@ class DdModelGenerator < ModelGenerator
|
|
15
20
|
m.directory File.join('test/unit', class_path)
|
16
21
|
|
17
22
|
# Model class, unit test, and fixtures.
|
18
|
-
m.template 'model.rb',
|
19
|
-
|
20
|
-
|
23
|
+
m.template 'model.rb',
|
24
|
+
File.join('app/models', class_path, "#{file_name}.rb")
|
25
|
+
m.template 'unit_test.rb',
|
26
|
+
File.join('test/unit', class_path, "#{file_name}_test.rb")
|
21
27
|
end
|
22
28
|
end
|
23
29
|
|
24
|
-
end
|
30
|
+
end
|
@@ -3,16 +3,13 @@ class <%= class_name %>
|
|
3
3
|
presets = {'Text' => ':lazy => false', 'String' => ':length => 500'}
|
4
4
|
reserved_dm_names = DataMapper::Resource.instance_methods +
|
5
5
|
DataMapper::Resource.private_instance_methods
|
6
|
-
datastore_types = (DataMapper::Property::PRIMITIVES +
|
7
|
-
DataMapper::Types.constants.map{|c| DataMapper::Types.const_get(c)}.
|
8
|
-
select{|t| t.respond_to? :primitive}).map {|c| c.to_s.split('::')[-1]}
|
9
6
|
Array(attributes).each do |attribute|
|
10
7
|
if reserved_dm_names.include? attribute.name
|
11
8
|
raise "reserved property name '#{attribute.name}'"
|
12
|
-
elsif !
|
9
|
+
elsif !DdModelGenerator::VALID_TYPES.include? attribute.type.to_s.camelcase
|
13
10
|
raise "unknown property type '#{attribute.type}'"
|
14
11
|
end
|
15
|
-
max = attribute.name.size if attribute.name.size > max
|
12
|
+
max = attribute.name.size if attribute.name.size > max
|
16
13
|
end -%>
|
17
14
|
include DataMapper::Resource
|
18
15
|
|
data/lib/rails_dm_datastore.rb
CHANGED
@@ -5,12 +5,10 @@ require 'dm-timestamps'
|
|
5
5
|
require 'dm-validations'
|
6
6
|
DataMapper.setup(:default, "appengine://auto")
|
7
7
|
|
8
|
-
require 'rails_dm_datastore/multiparameter_assignments'
|
9
8
|
require 'rails_dm_datastore/data_mapper'
|
10
9
|
require 'rails_dm_datastore/local_object_space'
|
11
10
|
require 'rails_dm_datastore/extlib'
|
12
11
|
require 'rails_dm_datastore/action_view'
|
13
|
-
require 'rails_dm_datastore/active_support'
|
14
12
|
|
15
13
|
# DataMapper::Validate
|
16
14
|
class Dictionary; alias count length; end
|
data/rails_dm_datastore.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rails_dm_datastore}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Josh S Moore", "John Woodell"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-01}
|
13
13
|
s.description = %q{Integrate datamapper to Rails for the Google App Engine}
|
14
14
|
s.email = ["joshsmoore@gmail.com", "woodie@netpress.com"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -29,11 +29,9 @@ Gem::Specification.new do |s|
|
|
29
29
|
"generators/dd_model/templates/unit_test.rb",
|
30
30
|
"lib/rails_dm_datastore.rb",
|
31
31
|
"lib/rails_dm_datastore/action_view.rb",
|
32
|
-
"lib/rails_dm_datastore/active_support.rb",
|
33
32
|
"lib/rails_dm_datastore/data_mapper.rb",
|
34
33
|
"lib/rails_dm_datastore/extlib.rb",
|
35
34
|
"lib/rails_dm_datastore/local_object_space.rb",
|
36
|
-
"lib/rails_dm_datastore/multiparameter_assignments.rb",
|
37
35
|
"rails_dm_datastore.gemspec",
|
38
36
|
"test/helper.rb",
|
39
37
|
"test/test_dm-rails-gae.rb",
|
@@ -42,11 +40,11 @@ Gem::Specification.new do |s|
|
|
42
40
|
s.homepage = %q{http://github.com/joshsmoore/dm-rails-gae}
|
43
41
|
s.rdoc_options = ["--charset=UTF-8"]
|
44
42
|
s.require_paths = ["lib"]
|
45
|
-
s.rubygems_version = %q{1.3.
|
43
|
+
s.rubygems_version = %q{1.3.6}
|
46
44
|
s.summary = %q{Generators for dm on gae}
|
47
45
|
s.test_files = [
|
48
|
-
"test/
|
49
|
-
"test/
|
46
|
+
"test/helper.rb",
|
47
|
+
"test/test_dm-rails-gae.rb",
|
50
48
|
"test/test_weak_reference.rb"
|
51
49
|
]
|
52
50
|
|
@@ -62,6 +60,7 @@ Gem::Specification.new do |s|
|
|
62
60
|
s.add_runtime_dependency(%q<dm-timestamps>, ["= 0.10.2"])
|
63
61
|
s.add_runtime_dependency(%q<dm-validations>, ["= 0.10.2"])
|
64
62
|
s.add_runtime_dependency(%q<dm-appengine>, [">= 0"])
|
63
|
+
s.add_runtime_dependency(%q<rails_appengine>, [">= 0"])
|
65
64
|
else
|
66
65
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
67
66
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
@@ -70,6 +69,7 @@ Gem::Specification.new do |s|
|
|
70
69
|
s.add_dependency(%q<dm-timestamps>, ["= 0.10.2"])
|
71
70
|
s.add_dependency(%q<dm-validations>, ["= 0.10.2"])
|
72
71
|
s.add_dependency(%q<dm-appengine>, [">= 0"])
|
72
|
+
s.add_dependency(%q<rails_appengine>, [">= 0"])
|
73
73
|
end
|
74
74
|
else
|
75
75
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
@@ -79,6 +79,7 @@ Gem::Specification.new do |s|
|
|
79
79
|
s.add_dependency(%q<dm-timestamps>, ["= 0.10.2"])
|
80
80
|
s.add_dependency(%q<dm-validations>, ["= 0.10.2"])
|
81
81
|
s.add_dependency(%q<dm-appengine>, [">= 0"])
|
82
|
+
s.add_dependency(%q<rails_appengine>, [">= 0"])
|
82
83
|
end
|
83
84
|
end
|
84
85
|
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_dm_datastore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 6
|
9
|
+
version: 0.2.6
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Josh S Moore
|
@@ -10,79 +15,113 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-03-01 00:00:00 -08:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: thoughtbot-shoulda
|
18
|
-
|
19
|
-
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
24
30
|
version: "0"
|
25
|
-
|
31
|
+
type: :development
|
32
|
+
version_requirements: *id001
|
26
33
|
- !ruby/object:Gem::Dependency
|
27
34
|
name: thoughtbot-shoulda
|
28
|
-
|
29
|
-
|
30
|
-
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
38
|
- - ">="
|
33
39
|
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
34
42
|
version: "0"
|
35
|
-
|
43
|
+
type: :development
|
44
|
+
version_requirements: *id002
|
36
45
|
- !ruby/object:Gem::Dependency
|
37
46
|
name: dm-core
|
38
|
-
|
39
|
-
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
prerelease: false
|
48
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
49
|
requirements:
|
42
50
|
- - "="
|
43
51
|
- !ruby/object:Gem::Version
|
52
|
+
segments:
|
53
|
+
- 0
|
54
|
+
- 10
|
55
|
+
- 2
|
44
56
|
version: 0.10.2
|
45
|
-
|
57
|
+
type: :runtime
|
58
|
+
version_requirements: *id003
|
46
59
|
- !ruby/object:Gem::Dependency
|
47
60
|
name: dm-ar-finders
|
48
|
-
|
49
|
-
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
63
|
requirements:
|
52
64
|
- - "="
|
53
65
|
- !ruby/object:Gem::Version
|
66
|
+
segments:
|
67
|
+
- 0
|
68
|
+
- 10
|
69
|
+
- 2
|
54
70
|
version: 0.10.2
|
55
|
-
|
71
|
+
type: :runtime
|
72
|
+
version_requirements: *id004
|
56
73
|
- !ruby/object:Gem::Dependency
|
57
74
|
name: dm-timestamps
|
58
|
-
|
59
|
-
|
60
|
-
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
prerelease: false
|
76
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
77
|
requirements:
|
62
78
|
- - "="
|
63
79
|
- !ruby/object:Gem::Version
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
- 10
|
83
|
+
- 2
|
64
84
|
version: 0.10.2
|
65
|
-
|
85
|
+
type: :runtime
|
86
|
+
version_requirements: *id005
|
66
87
|
- !ruby/object:Gem::Dependency
|
67
88
|
name: dm-validations
|
68
|
-
|
69
|
-
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
prerelease: false
|
90
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
71
91
|
requirements:
|
72
92
|
- - "="
|
73
93
|
- !ruby/object:Gem::Version
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
- 10
|
97
|
+
- 2
|
74
98
|
version: 0.10.2
|
75
|
-
|
99
|
+
type: :runtime
|
100
|
+
version_requirements: *id006
|
76
101
|
- !ruby/object:Gem::Dependency
|
77
102
|
name: dm-appengine
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
segments:
|
109
|
+
- 0
|
110
|
+
version: "0"
|
78
111
|
type: :runtime
|
79
|
-
|
80
|
-
|
112
|
+
version_requirements: *id007
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rails_appengine
|
115
|
+
prerelease: false
|
116
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
81
117
|
requirements:
|
82
118
|
- - ">="
|
83
119
|
- !ruby/object:Gem::Version
|
120
|
+
segments:
|
121
|
+
- 0
|
84
122
|
version: "0"
|
85
|
-
|
123
|
+
type: :runtime
|
124
|
+
version_requirements: *id008
|
86
125
|
description: Integrate datamapper to Rails for the Google App Engine
|
87
126
|
email:
|
88
127
|
- joshsmoore@gmail.com
|
@@ -107,11 +146,9 @@ files:
|
|
107
146
|
- generators/dd_model/templates/unit_test.rb
|
108
147
|
- lib/rails_dm_datastore.rb
|
109
148
|
- lib/rails_dm_datastore/action_view.rb
|
110
|
-
- lib/rails_dm_datastore/active_support.rb
|
111
149
|
- lib/rails_dm_datastore/data_mapper.rb
|
112
150
|
- lib/rails_dm_datastore/extlib.rb
|
113
151
|
- lib/rails_dm_datastore/local_object_space.rb
|
114
|
-
- lib/rails_dm_datastore/multiparameter_assignments.rb
|
115
152
|
- rails_dm_datastore.gemspec
|
116
153
|
- test/helper.rb
|
117
154
|
- test/test_dm-rails-gae.rb
|
@@ -129,22 +166,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
166
|
requirements:
|
130
167
|
- - ">="
|
131
168
|
- !ruby/object:Gem::Version
|
169
|
+
segments:
|
170
|
+
- 0
|
132
171
|
version: "0"
|
133
|
-
version:
|
134
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
173
|
requirements:
|
136
174
|
- - ">="
|
137
175
|
- !ruby/object:Gem::Version
|
176
|
+
segments:
|
177
|
+
- 0
|
138
178
|
version: "0"
|
139
|
-
version:
|
140
179
|
requirements: []
|
141
180
|
|
142
181
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.3.
|
182
|
+
rubygems_version: 1.3.6
|
144
183
|
signing_key:
|
145
184
|
specification_version: 3
|
146
185
|
summary: Generators for dm on gae
|
147
186
|
test_files:
|
148
|
-
- test/test_dm-rails-gae.rb
|
149
187
|
- test/helper.rb
|
188
|
+
- test/test_dm-rails-gae.rb
|
150
189
|
- test/test_weak_reference.rb
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# set a nil date or time when a date cannot be parced
|
2
|
-
# to avoid exception by ruby via to_date and to_time
|
3
|
-
module ActiveSupport #:nodoc:
|
4
|
-
module CoreExtensions #:nodoc:
|
5
|
-
module String #:nodoc:
|
6
|
-
# Converting strings to other objects
|
7
|
-
module Conversions
|
8
|
-
# 'a'.ord == 'a'[0] for Ruby 1.9 forward compatibility.
|
9
|
-
def ord
|
10
|
-
self[0]
|
11
|
-
end if RUBY_VERSION < '1.9'
|
12
|
-
# Form can be either :utc (default) or :local.
|
13
|
-
def to_time(form = :utc)
|
14
|
-
begin
|
15
|
-
::Time.send("#{form}_time", *::Date._parse(self, false).
|
16
|
-
values_at(:year, :mon, :mday, :hour, :min, :sec).
|
17
|
-
map { |arg| arg || 0 })
|
18
|
-
rescue
|
19
|
-
nil
|
20
|
-
end
|
21
|
-
end
|
22
|
-
def to_date
|
23
|
-
begin
|
24
|
-
::Date.new(*::Date._parse(self, false).
|
25
|
-
values_at(:year, :mon, :mday))
|
26
|
-
rescue
|
27
|
-
nil
|
28
|
-
end
|
29
|
-
end
|
30
|
-
def to_datetime
|
31
|
-
begin
|
32
|
-
::DateTime.civil(*::Date._parse(self, false).
|
33
|
-
values_at(:year, :mon, :mday, :hour, :min, :sec).
|
34
|
-
map { |arg| arg || 0 })
|
35
|
-
rescue
|
36
|
-
nil
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# Convert the values from the date and time picker
|
2
|
-
# to a date or time class that the datastore can accept
|
3
|
-
module MultiparameterAssignments
|
4
|
-
def self.fix_date(hash, property, type)
|
5
|
-
total_attributes = 0
|
6
|
-
if Date == type
|
7
|
-
total_attributes = 3
|
8
|
-
else
|
9
|
-
total_attributes = 5
|
10
|
-
end
|
11
|
-
time_string = ""
|
12
|
-
1.upto(total_attributes) do |n|
|
13
|
-
if n == 1
|
14
|
-
time_string << hash[:"#{property}(#{n}i)"]
|
15
|
-
elsif n > 1 && n <= 3
|
16
|
-
time_string << '-' + hash[:"#{property}(#{n}i)"]
|
17
|
-
elsif n == 4
|
18
|
-
time_string << ' ' + hash[:"#{property}(#{n}i)"]
|
19
|
-
elsif n > 4
|
20
|
-
time_string << ':' + hash[:"#{property}(#{n}i)"]
|
21
|
-
end
|
22
|
-
hash.delete :"#{property}(#{n}i)"
|
23
|
-
end
|
24
|
-
hash[property] = type.parse(time_string).send("to_#{type.to_s.downcase}")
|
25
|
-
hash
|
26
|
-
end
|
27
|
-
end
|