rails_dm_datastore 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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