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 +10 -0
- data/VERSION +1 -1
- data/generators/dm_model/templates/model.rb +23 -18
- data/lib/rails_dm_datastore.rb +39 -0
- data/rails_dm_datastore.gemspec +23 -2
- metadata +72 -2
- data/lib/dm-rails-gae.rb +0 -16
    
        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 | 
            +
            0.2.0
         | 
| @@ -1,25 +1,30 @@ | |
| 1 | 
            -
            <% max =  | 
| 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 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
               | 
| 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
         | 
    
        data/rails_dm_datastore.gemspec
    CHANGED
    
    | @@ -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. | 
| 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. | 
| 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
         |