rails_dm_datastore 0.1.1 → 0.2.0

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/Rakefile CHANGED
@@ -1,6 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
+ RAILS_VERSION = "2.3.5"
5
+ DM_VERSION = "0.10.2"
6
+
4
7
  begin
5
8
  require 'jeweler'
6
9
  Jeweler::Tasks.new do |gem|
@@ -11,6 +14,13 @@ begin
11
14
  gem.homepage = "http://github.com/joshsmoore/dm-rails-gae"
12
15
  gem.authors = ["joshsmoore"]
13
16
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
17
+ gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
18
+ gem.add_dependency 'rails', RAILS_VERSION
19
+ gem.add_dependency 'dm-core', DM_VERSION
20
+ gem.add_dependency 'dm-ar-finders', DM_VERSION
21
+ gem.add_dependency 'dm-timestamps', DM_VERSION
22
+ gem.add_dependency 'dm-validations', DM_VERSION
23
+ gem.add_dependency 'dm-appengine'
14
24
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
25
  end
16
26
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -1,25 +1,30 @@
1
- <% max = min = 10 -%>
1
+ <% max = 2
2
+ reserved_dm_names = DataMapper::Resource.instance_methods +
3
+ DataMapper::Resource.private_instance_methods
4
+ datastore_types = %w(AncestorKey BigDecimal Blob Boolean ByteString
5
+ Category Class Date DateTime Email Float Integer Key Link Object
6
+ PhoneNumber PostalAddres Rating String Text Time TrueClass) -%>
2
7
  <% Array(attributes).each do |attribute|
3
- max = attribute.name.size if max < attribute.name.size
4
- min = attribute.name.size if min > attribute.name.size
5
-
6
- Array(DataMapper::Property::PRIMITIVES).collect{|i| i.to_s}|DataMapper::Types.constants
7
- unless (Array(DataMapper::Property::PRIMITIVES).collect{|i| i.to_s}|DataMapper::Types.constants).include? attribute.type.to_s
8
- raise "unknown property type '#{attribute.type}'"
9
- end
10
-
11
- max += 1
12
- end
13
- -%>
8
+ if reserved_dm_names.include? attribute.name
9
+ raise "reserved property name '#{attribute.name}'"
10
+ elsif !datastore_types.include? attribute.type.to_s.classify
11
+ raise "unknown property type '#{attribute.type}'"
12
+ end
13
+ max = attribute.name.size if attribute.name.size > max -%>
14
+ <% end -%>
14
15
  class <%= class_name %>
15
16
  include DataMapper::Resource
16
17
 
17
- property :id,<%= " " * (max - 2) %>Serial
18
- <% Array(attributes).each do |attribute| -%>
19
- property :<%= attribute.name %>,<%= " " * (max - attribute.name.size) %><%= attribute.type %>
18
+ property :id,<%= " " * (max - 2) %> Serial
19
+ <% Array(attributes).each do |attribute|
20
+ klass = attribute.type.to_s.classify.to_s
21
+ klass += 's' if klass.eql? 'PostalAddres' # classify bug
22
+ pad = max - attribute.name.size
23
+ rad = 13 - klass.size
24
+ %> property :<%= attribute.name %>, <%= " " * pad
25
+ %><%= "#{klass}" %>, <%= " " * rad %>:nullable => false
20
26
  <% end -%>
21
27
  <% unless options[:skip_timestamps] -%>
22
- property :created_at, <%= " " * (max - 11) %>DateTime
23
- property :updated_at, <%= " " * (max - 11) %>DateTime
28
+ timestamps :at
24
29
  <% end -%>
25
- end
30
+ end
@@ -0,0 +1,39 @@
1
+ # patch for -- dm-core 0.10.2 & rails 2.3.5
2
+ require 'dm-core'
3
+ require 'dm-ar-finders'
4
+ require 'dm-timestamps'
5
+ require 'dm-validations'
6
+ DataMapper.setup(:default, "appengine://auto")
7
+
8
+ module DataMapper
9
+ module Resource
10
+ # avoid object references in URLs
11
+ def to_param; id.to_s; end
12
+ # silence deprecation warnings
13
+ def new_record?; new?; end
14
+ # avoid NoMethodError
15
+ def update_attributes(*args); update(*args); end
16
+ end
17
+ end
18
+
19
+ # DataMapper::Validate
20
+ class Dictionary; alias count length; end
21
+
22
+ module Extlib
23
+ module Hook
24
+ module ClassMethods
25
+ def inline_call(method_info, scope)
26
+ name = method_info[:name]
27
+ if scope == :instance
28
+ args = method_defined?(name) &&
29
+ instance_method(name).arity != 0 ? '*args' : ''
30
+ else
31
+ args = respond_to?(name) &&
32
+ method(name).arity != 0 ? '*args' : ''
33
+ end
34
+ # ObjectSpace._id2ref should be replaced with WeakRef
35
+ %(#{name}(#{args})) # Always call hook... set_timestamps_on_save()
36
+ end
37
+ end
38
+ end
39
+ end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rails_dm_datastore}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["joshsmoore"]
@@ -28,11 +28,11 @@ Gem::Specification.new do |s|
28
28
  "generators/dm_model/templates/model.rb",
29
29
  "generators/dm_model/templates/unit_test.rb",
30
30
  "lib/USAGE",
31
- "lib/dm-rails-gae.rb",
32
31
  "lib/generators/data_mapper/USAGE",
33
32
  "lib/generators/data_mapper/model/model_generator.rb",
34
33
  "lib/generators/data_mapper/model/templates/model.rb",
35
34
  "lib/generators/data_mapper/templates/model.rb",
35
+ "lib/rails_dm_datastore.rb",
36
36
  "rails_dm_datastore.gemspec",
37
37
  "test/helper.rb",
38
38
  "test/test_dm-rails-gae.rb"
@@ -53,11 +53,32 @@ Gem::Specification.new do |s|
53
53
 
54
54
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
55
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
56
+ s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
57
+ s.add_runtime_dependency(%q<rails>, ["= 2.3.5"])
58
+ s.add_runtime_dependency(%q<dm-core>, ["= 0.10.2"])
59
+ s.add_runtime_dependency(%q<dm-ar-finders>, ["= 0.10.2"])
60
+ s.add_runtime_dependency(%q<dm-timestamps>, ["= 0.10.2"])
61
+ s.add_runtime_dependency(%q<dm-validations>, ["= 0.10.2"])
62
+ s.add_runtime_dependency(%q<dm-appengine>, [">= 0"])
56
63
  else
57
64
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
65
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
66
+ s.add_dependency(%q<rails>, ["= 2.3.5"])
67
+ s.add_dependency(%q<dm-core>, ["= 0.10.2"])
68
+ s.add_dependency(%q<dm-ar-finders>, ["= 0.10.2"])
69
+ s.add_dependency(%q<dm-timestamps>, ["= 0.10.2"])
70
+ s.add_dependency(%q<dm-validations>, ["= 0.10.2"])
71
+ s.add_dependency(%q<dm-appengine>, [">= 0"])
58
72
  end
59
73
  else
60
74
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
75
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
76
+ s.add_dependency(%q<rails>, ["= 2.3.5"])
77
+ s.add_dependency(%q<dm-core>, ["= 0.10.2"])
78
+ s.add_dependency(%q<dm-ar-finders>, ["= 0.10.2"])
79
+ s.add_dependency(%q<dm-timestamps>, ["= 0.10.2"])
80
+ s.add_dependency(%q<dm-validations>, ["= 0.10.2"])
81
+ s.add_dependency(%q<dm-appengine>, [">= 0"])
61
82
  end
62
83
  end
63
84
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_dm_datastore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - joshsmoore
@@ -22,6 +22,76 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: "0"
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: thoughtbot-shoulda
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rails
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.3.5
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: dm-core
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.10.2
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: dm-ar-finders
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.10.2
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: dm-timestamps
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.10.2
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: dm-validations
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.10.2
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: dm-appengine
87
+ type: :runtime
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
25
95
  description: Integrate datamapper to rails3 for the Google App Engine
26
96
  email: joshsmoore@gmail.com
27
97
  executables: []
@@ -43,11 +113,11 @@ files:
43
113
  - generators/dm_model/templates/model.rb
44
114
  - generators/dm_model/templates/unit_test.rb
45
115
  - lib/USAGE
46
- - lib/dm-rails-gae.rb
47
116
  - lib/generators/data_mapper/USAGE
48
117
  - lib/generators/data_mapper/model/model_generator.rb
49
118
  - lib/generators/data_mapper/model/templates/model.rb
50
119
  - lib/generators/data_mapper/templates/model.rb
120
+ - lib/rails_dm_datastore.rb
51
121
  - rails_dm_datastore.gemspec
52
122
  - test/helper.rb
53
123
  - test/test_dm-rails-gae.rb
data/lib/dm-rails-gae.rb DELETED
@@ -1,16 +0,0 @@
1
- # patch for -- dm-core 0.10.2 & rails 2.3.5
2
-
3
- module DataMapper
4
- module Resource
5
- # avoid object references in URLs
6
- def to_param; id.to_s; end
7
- # silence deprecation warnings
8
- def new_record?; new?; end
9
- def update_attributes(*args); update(*args); end
10
- end
11
- end
12
- # DataMapper::Validate
13
- class Dictionary; alias count length; end
14
-
15
- # TODO: still need to fix this TypeError
16
- # compared with non class/module