rails_datamapper 0.9.11

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/History.txt ADDED
@@ -0,0 +1,5 @@
1
+ === 0.9.11 / 2009-03-29
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Added migration tasks
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Tom Malone
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest.txt ADDED
@@ -0,0 +1,24 @@
1
+ History.txt
2
+ LICENSE
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ TODO
7
+ datamapper.rake
8
+ generators/dm_install/dm_install_generator.rb
9
+ generators/dm_install/templates/datamapper.rake
10
+ generators/dm_migration/dm_migration_generator.rb
11
+ generators/dm_migration/templates/migration.rb
12
+ generators/dm_model/dm_model_generator.rb
13
+ generators/dm_model/templates/migration.rb
14
+ generators/dm_model/templates/model.rb
15
+ generators/dm_model/templates/unit_test.rb
16
+ generators/rspec_dm_model/rspec_dm_model_generator.rb
17
+ generators/rspec_dm_model/templates/model.rb
18
+ generators/rspec_dm_model/templates/model_spec.rb
19
+ init.rb
20
+ lib/rails_datamapper.rb
21
+ lib/rails_datamapper/rails_datamapper.rb
22
+ lib/rails_datamapper/validations.rb
23
+ lib/rails_datamapper/version.rb
24
+ tasks/install.rb
data/README.txt ADDED
@@ -0,0 +1,30 @@
1
+ This is a Rails plugin that provides datamapper as an orm
2
+
3
+ == Setup
4
+
5
+ add the following line to your projects environment.rb
6
+
7
+ config.gem "rails_datamapper"
8
+
9
+ == Generators
10
+
11
+ This will install the datamapper rake tasks:
12
+
13
+ script/generate dm_install
14
+
15
+ Two generators are added by default
16
+
17
+ script/generate dm_model
18
+ script/generate rspec_dm_model
19
+
20
+ These by default add an active record migrations but you can call
21
+
22
+ script/generate dm_model --skip-migration
23
+ script/generate rspec_dm_model --skip-migration
24
+
25
+ To avoid any dependency on active record add this to your projects environment.rb
26
+
27
+ config.frameworks -= [ :active_record ]
28
+
29
+ == Future
30
+ I really should sort out migrations but with rails3 round the corner don't hold your breath
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ require 'pathname'
2
+ require 'rubygems'
3
+
4
+ ROOT = Pathname(__FILE__).dirname.expand_path
5
+ JRUBY = RUBY_PLATFORM =~ /java/
6
+ WINDOWS = Gem.win_platform?
7
+ SUDO = (WINDOWS || JRUBY) ? '' : ('sudo' unless ENV['SUDOLESS'])
8
+
9
+ require ROOT + 'lib/rails_datamapper/version'
10
+
11
+ AUTHOR = 'Tom Malone'
12
+ EMAIL = 'tomjmalone [a] gmail [d] com'
13
+ GEM_NAME = 'rails_datamapper'
14
+ GEM_VERSION = DataMapper::RailsDatamapper::VERSION
15
+ GEM_DEPENDENCIES = [
16
+ [ 'dm-core', GEM_VERSION ],
17
+ [ 'dm-aggregates', GEM_VERSION ],
18
+ [ 'dm-migrations', GEM_VERSION ],
19
+ [ 'dm-serializer', GEM_VERSION ],
20
+ [ 'dm-timestamps', GEM_VERSION ],
21
+ [ 'dm-validations', GEM_VERSION ],
22
+ [ 'dm-types', GEM_VERSION ],
23
+ ]
24
+
25
+ GEM_CLEAN = %w[ pkg ]
26
+ GEM_EXTRAS = { :has_rdoc => false, :extra_rdoc_files => %w[ README.txt LICENSE TODO History.txt ] }
27
+
28
+ PROJECT_NAME = 'datamapper'
29
+ PROJECT_URL = "http://github.com/datamapper/dm-more/tree/master/#{GEM_NAME}"
30
+ PROJECT_DESCRIPTION = PROJECT_SUMMARY = 'Rails Plugin for datamapper'
31
+
32
+ [ ROOT, ROOT.parent ].each do |dir|
33
+ Pathname.glob(dir.join('tasks/**/*.rb').to_s).each { |f| require f }
34
+ end
data/TODO ADDED
File without changes
data/datamapper.rake ADDED
@@ -0,0 +1,36 @@
1
+ namespace :db do
2
+
3
+ desc "Perform automigration"
4
+ task :automigrate => :environment do
5
+ ::DataMapper.auto_migrate!
6
+ end
7
+
8
+ desc "Perform non destructive automigration"
9
+ task :autoupgrade => :environment do
10
+ ::DataMapper.auto_upgrade!
11
+ end
12
+
13
+ namespace :migrate do
14
+ task :load => :environment do
15
+ gem 'dm-migrations'
16
+ FileList["db/migrations/*.rb"].each do |migration|
17
+ load migration
18
+ end
19
+ end
20
+
21
+ desc "Migrate up using migrations"
22
+ task :up, :version, :needs => :load do |t, args|
23
+ version = args[:version]
24
+ migrate_up!(version)
25
+ end
26
+
27
+ desc "Migrate down using migrations"
28
+ task :down, :version, :needs => :load do |t, args|
29
+ version = args[:version]
30
+ migrate_down!(version)
31
+ end
32
+ end
33
+
34
+ desc "Migrate the database to the latest version"
35
+ task :migrate => 'db:migrate:up'
36
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails_generator/base'
2
+
3
+ class DmInstallGenerator < Rails::Generator::Base
4
+
5
+ def manifest
6
+ record do |m|
7
+ m.directory "lib/tasks"
8
+ m.template "datamapper.rake", "lib/tasks/datamapper.rake"
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,42 @@
1
+ namespace :db do
2
+
3
+ desc "Perform automigration"
4
+ task :automigrate => :environment do
5
+ FileList["app/models/**/*.rb"].each do |model|
6
+ load model
7
+ end
8
+ ::DataMapper.auto_migrate!
9
+ end
10
+
11
+ desc "Perform non destructive automigration"
12
+ task :autoupgrade => :environment do
13
+ FileList["app/models/**/*.rb"].each do |model|
14
+ load model
15
+ end
16
+ ::DataMapper.auto_upgrade!
17
+ end
18
+
19
+ namespace :migrate do
20
+ task :load => :environment do
21
+ gem 'dm-migrations'
22
+ FileList["db/migrations/*.rb"].each do |migration|
23
+ load migration
24
+ end
25
+ end
26
+
27
+ desc "Migrate up using migrations"
28
+ task :up, :version, :needs => :load do |t, args|
29
+ version = args[:version]
30
+ migrate_up!(version)
31
+ end
32
+
33
+ desc "Migrate down using migrations"
34
+ task :down, :version, :needs => :load do |t, args|
35
+ version = args[:version]
36
+ migrate_down!(version)
37
+ end
38
+ end
39
+
40
+ desc "Migrate the database to the latest version"
41
+ task :migrate => 'db:migrate:up'
42
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails_generator/generators/components/migration/migration_generator'
2
+
3
+ class DmMigrationGenerator < Rails::Generator::NamedBase
4
+
5
+ def manifest
6
+ record do |m|
7
+ m.migration_template "migration.rb", "db/migrate"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ migration <%= # TODO %>, :<%= class_name.underscore %> do
2
+ up do
3
+ end
4
+
5
+ down do
6
+ end
7
+ end
@@ -0,0 +1,27 @@
1
+ require 'rails_generator/generators/components/model/model_generator'
2
+ require 'active_record'
3
+
4
+ class DmModelGenerator <ModelGenerator
5
+
6
+ def manifest
7
+ record do |m|
8
+ # Check for class naming collisions.
9
+ m.class_collisions class_path, class_name, "#{class_name}Test"
10
+
11
+ # Model, test, and fixture directories.
12
+ m.directory File.join('app/models', class_path)
13
+ m.directory File.join('test/unit', class_path)
14
+
15
+ # Model class, unit test, and fixtures.
16
+ m.template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
17
+ m.template 'unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb")
18
+
19
+ unless options[:skip_migration]
20
+ m.migration_template 'migration.rb', 'db/migrate', :assigns => {
21
+ :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
22
+ }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
23
+ end
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,16 @@
1
+ class <%= migration_name %> < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :<%= table_name %> do |t|
4
+ <% for attribute in attributes -%>
5
+ t.<%= attribute.type %> :<%= attribute.name %>
6
+ <% end -%>
7
+ <% unless options[:skip_timestamps] %>
8
+ t.timestamps
9
+ <% end -%>
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :<%= table_name %>
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ class <%= class_name %>
2
+ include DataMapper::Resource
3
+ property :id, Serial
4
+
5
+ <% for attribute in attributes -%>
6
+ property :<%= attribute.name %>, <%= attribute.type.to_s.capitalize %>, :nullable => false
7
+
8
+ <% end -%>
9
+ <% unless options[:skip_timestamps] %>
10
+ property :created_at, DateTime, :nullable => false
11
+ property :updated_at, DateTime, :nullable => false
12
+
13
+ <% end -%>
14
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class <%= class_name %>Test < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ require 'rails_generator/generators/components/model/model_generator'
2
+ require 'active_record'
3
+
4
+ class RspecDmModelGenerator <ModelGenerator
5
+
6
+ def manifest
7
+ record do |m|
8
+
9
+ # Check for class naming collisions.
10
+ m.class_collisions class_path, class_name
11
+
12
+ # Model, spec, and fixture directories.
13
+ m.directory File.join('app/models', class_path)
14
+ m.directory File.join('spec/models', class_path)
15
+
16
+ # Model class, spec and fixtures.
17
+ m.template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
18
+ m.template 'model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
19
+
20
+ unless options[:skip_migration]
21
+ m.migration_template 'model:migration.rb', 'db/migrate', :assigns => {
22
+ :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
23
+ }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -0,0 +1,14 @@
1
+ class <%= class_name %>
2
+ include DataMapper::Resource
3
+ property :id, Serial
4
+
5
+ <% for attribute in attributes -%>
6
+ property :<%= attribute.name %>, <%= attribute.type.to_s.capitalize %>, :nullable => false
7
+
8
+ <% end -%>
9
+ <% unless options[:skip_timestamps] %>
10
+ property :created_at, DateTime, :nullable => false
11
+ property :updated_at, DateTime, :nullable => false
12
+
13
+ <% end -%>
14
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper')
2
+
3
+ describe <%= class_name %> do
4
+ before(:each) do
5
+ @<%= file_name %> = <%= class_name %>.new
6
+ end
7
+
8
+ it "should be valid" do
9
+ end
10
+ end
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'pathname'
2
+ require Pathname(__FILE__).dirname.expand_path / 'lib/rails_datamapper'
@@ -0,0 +1,45 @@
1
+ def config_file()
2
+ RAILS_ROOT + "/config/database.yml"
3
+ end
4
+
5
+ def create_connection()
6
+ conf = config.dup
7
+ repositories = conf.delete(:repositories)
8
+ ::DataMapper.setup(:default, conf) unless conf.empty?
9
+ end
10
+
11
+ def get_config_for_environment
12
+ if hash = full_config[RAILS_ENV]
13
+ symbolize_keys(hash)
14
+ elsif hash = full_config[RAILS_ENV.to_sym]
15
+ hash
16
+ else
17
+ raise ArgumentError, "missing environment '#{RAILS_ENV}' in config file #{config_file}"
18
+ end
19
+ end
20
+
21
+ def full_config
22
+ @full_config ||= YAML::load(ERB.new(IO.read(config_file)).result)
23
+ end
24
+
25
+ def config
26
+ @config ||= get_config_for_environment
27
+ end
28
+
29
+ def symbolize_keys(h)
30
+ config = {}
31
+
32
+ h.each do |k, v|
33
+ if k == 'port'
34
+ config[k.to_sym] = v.to_i
35
+ elsif k == 'adapter' && v == 'postgresql'
36
+ config[k.to_sym] = 'postgres'
37
+ elsif v.is_a?(Hash)
38
+ config[k.to_sym] = symbolize_keys(v)
39
+ else
40
+ config[k.to_sym] = v
41
+ end
42
+ end
43
+
44
+ config
45
+ end
@@ -0,0 +1,9 @@
1
+ module DataMapper
2
+ module Validate
3
+ class ValidationErrors
4
+ def count
5
+ size
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module DataMapper
2
+ module RailsDatamapper
3
+ VERSION = '0.9.11'
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ require 'pathname'
2
+ require 'dm-core'
3
+ require 'dm-aggregates'
4
+ require 'dm-migrations'
5
+ require 'dm-serializer'
6
+ require 'dm-timestamps'
7
+ require 'dm-validations'
8
+ require 'dm-types'
9
+
10
+ dir = Pathname(__FILE__).dirname.expand_path / 'rails_datamapper'
11
+
12
+ require dir / 'rails_datamapper'
13
+ require dir / 'validations'
14
+
15
+ create_connection()
data/tasks/install.rb ADDED
@@ -0,0 +1,13 @@
1
+ def sudo_gem(cmd)
2
+ sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
3
+ end
4
+
5
+ desc "Install #{GEM_NAME} #{GEM_VERSION}"
6
+ task :install => [ :package ] do
7
+ sudo_gem "install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources"
8
+ end
9
+
10
+ desc "Uninstall #{GEM_NAME} #{GEM_VERSION}"
11
+ task :uninstall => [ :clobber ] do
12
+ sudo_gem "uninstall #{GEM_NAME} -v#{GEM_VERSION} -Ix"
13
+ end
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_datamapper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.11
5
+ platform: ruby
6
+ authors:
7
+ - Tom Malone
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-11 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: dm-core
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.11
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: dm-aggregates
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.11
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: dm-migrations
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.11
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: dm-serializer
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.11
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: dm-timestamps
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.9.11
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: dm-validations
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "="
72
+ - !ruby/object:Gem::Version
73
+ version: 0.9.11
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: dm-types
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.9.11
84
+ version:
85
+ description: Rails Plugin for datamapper
86
+ email:
87
+ - tomjmalone [a] gmail [d] com
88
+ executables: []
89
+
90
+ extensions: []
91
+
92
+ extra_rdoc_files:
93
+ - README.txt
94
+ - LICENSE
95
+ - TODO
96
+ - History.txt
97
+ files:
98
+ - History.txt
99
+ - LICENSE
100
+ - Manifest.txt
101
+ - README.txt
102
+ - Rakefile
103
+ - TODO
104
+ - datamapper.rake
105
+ - generators/dm_install/dm_install_generator.rb
106
+ - generators/dm_install/templates/datamapper.rake
107
+ - generators/dm_migration/dm_migration_generator.rb
108
+ - generators/dm_migration/templates/migration.rb
109
+ - generators/dm_model/dm_model_generator.rb
110
+ - generators/dm_model/templates/migration.rb
111
+ - generators/dm_model/templates/model.rb
112
+ - generators/dm_model/templates/unit_test.rb
113
+ - generators/rspec_dm_model/rspec_dm_model_generator.rb
114
+ - generators/rspec_dm_model/templates/model.rb
115
+ - generators/rspec_dm_model/templates/model_spec.rb
116
+ - init.rb
117
+ - lib/rails_datamapper.rb
118
+ - lib/rails_datamapper/rails_datamapper.rb
119
+ - lib/rails_datamapper/validations.rb
120
+ - lib/rails_datamapper/version.rb
121
+ - tasks/install.rb
122
+ has_rdoc: true
123
+ homepage: http://github.com/datamapper/dm-more/tree/master/rails_datamapper
124
+ licenses: []
125
+
126
+ post_install_message:
127
+ rdoc_options:
128
+ - --main
129
+ - README.txt
130
+ require_paths:
131
+ - lib
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: "0"
137
+ version:
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: "0"
143
+ version:
144
+ requirements: []
145
+
146
+ rubyforge_project: datamapper
147
+ rubygems_version: 1.3.4
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: Rails Plugin for datamapper
151
+ test_files: []
152
+