rails3-generators 0.10.3 → 0.11.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/.bundle/config +2 -0
- data/CHANGELOG.rdoc +18 -2
- data/README.rdoc +5 -1
- data/Rakefile +5 -2
- data/VERSION +1 -1
- data/lib/generators/{datamapper.rb → data_mapper.rb} +6 -3
- data/lib/generators/{datamapper → data_mapper}/migration/migration_generator.rb +2 -2
- data/lib/generators/{datamapper → data_mapper}/migration/templates/migration.rb +0 -0
- data/lib/generators/{datamapper → data_mapper}/model/model_generator.rb +27 -3
- data/lib/generators/{datamapper → data_mapper}/model/templates/migration.rb +0 -0
- data/lib/generators/{datamapper → data_mapper}/model/templates/model.rb +4 -2
- data/lib/generators/{datamapper → data_mapper}/observer/observer_generator.rb +2 -2
- data/lib/generators/{datamapper → data_mapper}/observer/templates/observer.rb +1 -1
- data/lib/generators/helpers/migration_helper.rb +53 -0
- data/lib/generators/helpers/model_helper.rb +75 -0
- data/lib/generators/jquery/install/install_generator.rb +6 -6
- data/lib/generators/jquery/install/templates/README +10 -0
- data/lib/generators/{mongomapper.rb → mongo_mapper.rb} +3 -24
- data/lib/generators/mongo_mapper/install/install_generator.rb +30 -0
- data/lib/generators/mongo_mapper/install/templates/database.mongo.yml +25 -0
- data/lib/generators/mongo_mapper/install/templates/mongo_mapper.rb +9 -0
- data/lib/generators/mongo_mapper/model/model_generator.rb +84 -0
- data/lib/generators/mongo_mapper/model/templates/model.rb +36 -0
- data/lib/generators/{mongomapper → mongo_mapper}/observer/observer_generator.rb +2 -2
- data/lib/generators/mongo_mapper/observer/templates/observer.rb +3 -0
- data/lib/generators/mongoid.rb +24 -0
- data/lib/generators/mongoid/install/install_generator.rb +35 -0
- data/lib/generators/mongoid/install/templates/database.mongo.yml +25 -0
- data/lib/generators/mongoid/install/templates/mongoid.rb +12 -0
- data/lib/generators/mongoid/model/model_generator.rb +111 -0
- data/lib/generators/{mongomapper → mongoid}/model/templates/model.rb +11 -9
- data/lib/generators/mustache/install/templates/lib/mustache_rails.rb +1 -3
- data/lib/rails3-generators.rb +1 -1
- data/rails3-generators.gemspec +60 -29
- data/test/lib/generators/data_mapper/migration_generator_test.rb +40 -0
- data/test/lib/generators/data_mapper/model_generator_test.rb +53 -0
- data/test/lib/generators/data_mapper/observer_generator_test.rb +22 -0
- data/test/lib/generators/haml/controller_generator_test.rb +1 -0
- data/test/lib/generators/haml/install_generator_test.rb +1 -0
- data/test/lib/generators/haml/scaffold_generator_test.rb +1 -0
- data/test/lib/generators/haml/testing_helper.rb +1 -0
- data/test/lib/generators/jquery/install_generator_test.rb +0 -1
- data/test/lib/generators/mongo_mapper/install_generator_test.rb +17 -0
- data/test/lib/generators/mongo_mapper/model_generator_test.rb +73 -0
- data/test/lib/generators/mongo_mapper/observer_generator_test.rb +20 -0
- data/test/lib/generators/mongo_mapper/testing_helper.rb +1 -0
- data/test/lib/generators/mongoid/install_generator_test.rb +18 -0
- data/test/lib/generators/mongoid/model_generator_test.rb +72 -0
- data/test/lib/generators/mongoid/testing_helper.rb +1 -0
- data/test/lib/generators/mustache/controller_generator_test.rb +1 -0
- data/test/lib/generators/mustache/scaffold_generator_test.rb +1 -0
- data/test/lib/generators/mustache/testing_helper.rb +1 -0
- data/test/test_helper.rb +31 -28
- metadata +61 -30
- data/lib/generators/jquery/install/templates/config/initializers/jquery.rb.tt +0 -9
- data/lib/generators/mongomapper/model/model_generator.rb +0 -29
- data/test/lib/generators/datamapper/migration_generator_test.rb +0 -13
- data/test/lib/generators/datamapper/model_generator_test.rb +0 -13
- data/test/lib/generators/datamapper/observer_generator_test.rb +0 -13
- data/test/lib/generators/mongomapper/model_generator_test.rb +0 -13
- data/test/lib/generators/mongomapper/observer_generator_test.rb +0 -13
data/.bundle/config
ADDED
data/CHANGELOG.rdoc
CHANGED
@@ -1,8 +1,24 @@
|
|
1
1
|
== TODO
|
2
2
|
* Grow Mustache up.(fix the TODOs and move the source to a mustache-rails like gem)
|
3
3
|
* Write some documentation. (In both the github wiki and the source code)
|
4
|
-
|
5
|
-
|
4
|
+
|
5
|
+
== 0.11.0
|
6
|
+
* enhancements
|
7
|
+
* Added new mongo_mapper generator for mongo mapper 0.8 with lots of extra features [Kristian Mandrup]
|
8
|
+
* Added mongoid generator for mongoid 2.0.beta with features similar to new mongo_mapper [Kristian Mandrup]
|
9
|
+
|
10
|
+
* optimize
|
11
|
+
* renamed datamapper to data_mapper
|
12
|
+
* renamed mongomapper to mongo_mapper.
|
13
|
+
|
14
|
+
* fix
|
15
|
+
* added DataMapper Tests
|
16
|
+
* added MongoMapper Tests
|
17
|
+
|
18
|
+
== 0.10.4
|
19
|
+
* optimize
|
20
|
+
* Update jquery install by removing unneeded initializer file
|
21
|
+
* Update mustache_rails to user autoload_paths instead of load_paths
|
6
22
|
|
7
23
|
== 0.10.3
|
8
24
|
* optimize
|
data/README.rdoc
CHANGED
@@ -38,7 +38,11 @@ Factory Girl: Paul Barry
|
|
38
38
|
|
39
39
|
Authlogic: Jeff Tucker
|
40
40
|
|
41
|
-
|
41
|
+
Mongomapper: Jai-Gouk Kim
|
42
|
+
|
43
|
+
MongoMapper: Kristian Mandrup (for 0.8) - needs testing
|
44
|
+
|
45
|
+
Mongoid: Kristian Mandrup (for 2.0.beta) - needs testing
|
42
46
|
|
43
47
|
Machinist: Darcy Laycock
|
44
48
|
|
data/Rakefile
CHANGED
@@ -9,16 +9,19 @@ begin
|
|
9
9
|
|
10
10
|
gem.name = "rails3-generators"
|
11
11
|
gem.summary = %Q{Rails 3 compatible generators}
|
12
|
-
gem.description = %Q{Rails 3 compatible generators for DataMapper, Haml, Factory-girl, Authlogic, Mongomapper, Shoulda, Formtastic and SimpleForm}
|
12
|
+
gem.description = %Q{Rails 3 compatible generators for DataMapper, Haml, Factory-girl, Authlogic, Mongomapper, Mongoid, Shoulda, Formtastic and SimpleForm}
|
13
13
|
gem.email = "andre@arko.net"
|
14
14
|
gem.homepage = "http://github.com/indirect/rails3-generators"
|
15
|
-
gem.authors = ["Jose Valim", "Anuj Dutta", "Paul Berry", "Jeff Tucker", "Louis T.", "Jai-Gouk Kim", "Darcy Laycock", "Peter Haza", "Peter Gumeson"]
|
15
|
+
gem.authors = ["Jose Valim", "Anuj Dutta", "Paul Berry", "Jeff Tucker", "Louis T.", "Jai-Gouk Kim", "Darcy Laycock", "Peter Haza", "Peter Gumeson", "Kristian Mandrup"]
|
16
16
|
# gem.add_development_dependency "rspec", ">= 1.2.9"
|
17
17
|
gem.post_install_message =
|
18
18
|
%Q{
|
19
19
|
rails3-generators-#{version}
|
20
20
|
Be sure to check out the wiki, http://wiki.github.com/indirect/rails3-generators/,
|
21
21
|
for information about recent changes to this project.
|
22
|
+
|
23
|
+
note: ORM :datamapper has been renamed to :data_mapper
|
24
|
+
note: ORM :mongomapper has been renamed to :mongo_mapper
|
22
25
|
|
23
26
|
note: if you use erb templates add the follow to your generators block to take full advantage of this gem.
|
24
27
|
g.template_engine :erubis
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.11.0
|
@@ -2,14 +2,17 @@ require 'rails/generators/named_base'
|
|
2
2
|
require 'rails/generators/migration'
|
3
3
|
require 'rails/generators/active_model'
|
4
4
|
|
5
|
-
|
5
|
+
require 'generators/helpers/migration_helper'
|
6
|
+
|
7
|
+
module DataMapper
|
6
8
|
module Generators
|
7
9
|
class Base < Rails::Generators::NamedBase #:nodoc:
|
8
|
-
include
|
10
|
+
include Rails3Generators::MigrationHelper
|
11
|
+
# include Rails::Generators::Migration
|
9
12
|
|
10
13
|
def self.source_root
|
11
14
|
@_datamapper_source_root ||= File.expand_path(File.join(File.dirname(__FILE__),
|
12
|
-
'
|
15
|
+
'data_mapper', generator_name, 'templates'))
|
13
16
|
end
|
14
17
|
|
15
18
|
protected
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require 'generators/
|
1
|
+
require 'generators/data_mapper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module DataMapper
|
4
4
|
module Generators
|
5
5
|
class ModelGenerator < Base
|
6
6
|
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
|
@@ -13,7 +13,7 @@ module Datamapper
|
|
13
13
|
class_option :parent, :type => :string, :desc => "The parent class for the generated model"
|
14
14
|
|
15
15
|
def create_migration_file
|
16
|
-
if
|
16
|
+
if migration? && parent?
|
17
17
|
file_name = "create_#{file_path.gsub(/\//, '_').pluralize}"
|
18
18
|
migration_template "migration.rb", "db/migrate/#{file_name}.rb"
|
19
19
|
end
|
@@ -23,6 +23,30 @@ module Datamapper
|
|
23
23
|
template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
24
24
|
end
|
25
25
|
|
26
|
+
protected
|
27
|
+
|
28
|
+
def migration?
|
29
|
+
options[:migration]
|
30
|
+
end
|
31
|
+
|
32
|
+
def timestamps?
|
33
|
+
options[:timestamps]
|
34
|
+
end
|
35
|
+
|
36
|
+
def parent?
|
37
|
+
options[:parent]
|
38
|
+
end
|
39
|
+
|
40
|
+
def timestamp_statements
|
41
|
+
%q{
|
42
|
+
property :created_at, DateTime
|
43
|
+
# property :created_on, Date
|
44
|
+
|
45
|
+
property :updated_at, DateTime
|
46
|
+
# property :updated_on, Date
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
26
50
|
hook_for :test_framework
|
27
51
|
end
|
28
52
|
end
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
|
-
class <%= class_name %><%= "< #{options[:parent].classify}" if
|
2
|
-
<% unless
|
1
|
+
class <%= class_name %><%= "< #{options[:parent].classify}" if parent? %>
|
2
|
+
<% unless parent? -%>
|
3
3
|
include DataMapper::Resource
|
4
4
|
|
5
5
|
property :id, Serial
|
@@ -7,4 +7,6 @@ class <%= class_name %><%= "< #{options[:parent].classify}" if options[:parent]
|
|
7
7
|
<% attributes.each do |attribute| -%>
|
8
8
|
property :<%= attribute.name %>, <%= attribute.type_class %>
|
9
9
|
<% end -%>
|
10
|
+
|
11
|
+
<%= timestamp_statements if timestamps? %>
|
10
12
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
|
3
|
+
module Rails3Generators
|
4
|
+
module MigrationHelper
|
5
|
+
include Rails::Generators::Migration
|
6
|
+
|
7
|
+
attr_accessor :migration_number
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def migration_lookup_at(dirname) #:nodoc:
|
11
|
+
Dir.glob("#{dirname}/[0-9]*_*.rb")
|
12
|
+
end
|
13
|
+
|
14
|
+
def migration_exists?(dirname, file_name) #:nodoc:
|
15
|
+
migration_lookup_at(dirname).grep(/\d+_#{file_name}.rb$/).first
|
16
|
+
end
|
17
|
+
|
18
|
+
def current_migration_number(dirname) #:nodoc:
|
19
|
+
migration_lookup_at(dirname).collect do |file|
|
20
|
+
File.basename(file).split("_").first.to_i
|
21
|
+
end.max.to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
def next_migration_number(dirname) #:nodoc:
|
25
|
+
orm = Rails.configuration.generators.options[:rails][:orm]
|
26
|
+
require "rails/generators/#{orm}"
|
27
|
+
"#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
|
28
|
+
rescue
|
29
|
+
raise NotImplementedError
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.included(base) #:nodoc:
|
34
|
+
base.extend ClassMethods
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def run_migration(options)
|
39
|
+
run "rails g migration #{options}"
|
40
|
+
end
|
41
|
+
|
42
|
+
protected
|
43
|
+
|
44
|
+
def model_exists?(name)
|
45
|
+
File.exists?(File.join(Rails.root, "app/models/#{name}.rb"))
|
46
|
+
end
|
47
|
+
|
48
|
+
def model_file(name)
|
49
|
+
File.join(Rails.root, "app/models/#{name}.rb")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Rails3Generators
|
2
|
+
module Helpers
|
3
|
+
module Model
|
4
|
+
|
5
|
+
attr_accessor :model_attributes, :model_indexes
|
6
|
+
|
7
|
+
def parse_model_attributes(with_indexes = true)
|
8
|
+
@model_attributes = []
|
9
|
+
@model_indexes = {}
|
10
|
+
#
|
11
|
+
# attributes.each do |arg|
|
12
|
+
# if with_indexes
|
13
|
+
# # extract index markers
|
14
|
+
# if arg.include?('#')
|
15
|
+
# arg.gsub! /#.*$/, ''
|
16
|
+
# model_indexes[arg_name(arg).to_sym] = true
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# if arg.include?(':')
|
21
|
+
# model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
|
22
|
+
# else
|
23
|
+
# model_attributes << Rails::Generators::GeneratedAttribute.new(arg, "string")
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# model_attributes.uniq!
|
27
|
+
#
|
28
|
+
# if model_attributes.empty?
|
29
|
+
# if model_exists?
|
30
|
+
# model_columns_for_attributes.each do |column|
|
31
|
+
# model_attributes << Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
|
32
|
+
# end
|
33
|
+
# else
|
34
|
+
# model_attributes << Rails::Generators::GeneratedAttribute.new('name', 'string')
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
end
|
39
|
+
|
40
|
+
def arg_name(arg)
|
41
|
+
arg.split(':').first
|
42
|
+
end
|
43
|
+
|
44
|
+
def arg_type(arg)
|
45
|
+
arg.split(':')[1] || 'string'
|
46
|
+
end
|
47
|
+
|
48
|
+
def model_name
|
49
|
+
name
|
50
|
+
end
|
51
|
+
|
52
|
+
def model_exists?
|
53
|
+
File.exist? destination_path("app/models/#{singular_name}.rb")
|
54
|
+
end
|
55
|
+
|
56
|
+
def singular_name
|
57
|
+
model_name.underscore
|
58
|
+
end
|
59
|
+
|
60
|
+
def plural_name
|
61
|
+
model_name.underscore.pluralize
|
62
|
+
end
|
63
|
+
|
64
|
+
def class_name
|
65
|
+
model_name.camelize
|
66
|
+
end
|
67
|
+
|
68
|
+
def plural_class_name
|
69
|
+
plural_name.camelize
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
|
@@ -5,13 +5,9 @@ module Jquery
|
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
6
|
extend TemplatePath
|
7
7
|
|
8
|
-
def copy_initializer_files
|
9
|
-
template "config/initializers/jquery.rb.tt", "config/initializers/jquery.rb"
|
10
|
-
end
|
11
|
-
|
12
8
|
def download_jquery_files
|
13
|
-
%w(controls.js dragdrop.js effects.js prototype.js rails.js).each do |
|
14
|
-
remove_file "public/javascripts/#{
|
9
|
+
%w(controls.js dragdrop.js effects.js prototype.js rails.js).each do |js|
|
10
|
+
remove_file "public/javascripts/#{js}"
|
15
11
|
end
|
16
12
|
|
17
13
|
# Downloading latest jQuery.min
|
@@ -20,6 +16,10 @@ module Jquery
|
|
20
16
|
# Downloading latest jQuery drivers
|
21
17
|
get "http://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
|
22
18
|
end
|
19
|
+
|
20
|
+
def show_readme
|
21
|
+
readme "README"
|
22
|
+
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
Some manual steps you have to do
|
5
|
+
|
6
|
+
1. Uncomment or add the following to you application.rb file:
|
7
|
+
|
8
|
+
config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
9
|
+
|
10
|
+
===============================================================================
|
@@ -1,35 +1,14 @@
|
|
1
1
|
require 'rails/generators/named_base'
|
2
|
-
# require 'rails/generators/migration'
|
3
2
|
require 'rails/generators/active_model'
|
4
3
|
|
5
|
-
module
|
4
|
+
module MongoMapper
|
6
5
|
module Generators
|
7
6
|
class Base < Rails::Generators::NamedBase #:nodoc:
|
8
|
-
# include Rails::Generators::Migration
|
9
7
|
|
10
8
|
def self.source_root
|
11
9
|
@_mongomapper_source_root ||= File.expand_path(File.join(File.dirname(__FILE__),
|
12
|
-
|
10
|
+
'mongo_mapper', generator_name, 'templates'))
|
13
11
|
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
# # mongomapper does not care if migrations have the same name as long as
|
18
|
-
# # they have different ids.
|
19
|
-
# #
|
20
|
-
# def migration_exists?(dirname, file_name) #:nodoc:
|
21
|
-
# false
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# # Implement the required interface for Rails::Generators::Migration.
|
25
|
-
# #
|
26
|
-
# def next_migration_number(dirname) #:nodoc:
|
27
|
-
# if options[:id]
|
28
|
-
# "%.3d" % options[:id]
|
29
|
-
# else
|
30
|
-
# "%.3d" % (current_migration_number(dirname) + 1)
|
31
|
-
# end
|
32
|
-
# end
|
33
12
|
end
|
34
13
|
|
35
14
|
class ActiveModel < Rails::Generators::ActiveModel #:nodoc:
|
@@ -54,7 +33,7 @@ module Mongomapper
|
|
54
33
|
end
|
55
34
|
|
56
35
|
def update_attributes(params=nil)
|
57
|
-
"#{name}.update(#{params})"
|
36
|
+
"#{name}.update(#{params})"
|
58
37
|
end
|
59
38
|
|
60
39
|
def errors
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'generators/mongo_mapper'
|
2
|
+
|
3
|
+
module MongoMapper
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < Base
|
6
|
+
class_option :host, :type => :string, :default => 'localhost', :desc => "Name of the Mongo host use"
|
7
|
+
|
8
|
+
def create_files
|
9
|
+
template "mongo_mapper.rb" , "config/initializers/mongo_mapper.rb"
|
10
|
+
template "database.mongo.yml" , "config/database.mongo.yml"
|
11
|
+
say "Please ensure Gemfile contains: gem '#{orm_gem_name}', '>=0.8.2'"
|
12
|
+
say "For production enviroment DB configuration, set environment variables as indicated in config/database.mongo.yml"
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def database
|
18
|
+
name
|
19
|
+
end
|
20
|
+
|
21
|
+
def orm_gem_name
|
22
|
+
"mongo_mapper"
|
23
|
+
end
|
24
|
+
|
25
|
+
def host
|
26
|
+
options[:host] || 'localhost'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
defaults: &defaults
|
2
|
+
adapter: mongodb
|
3
|
+
host: <%= host %>
|
4
|
+
# slaves:
|
5
|
+
# - host: slave1.local
|
6
|
+
# port: 27018
|
7
|
+
# - host: slave2.local
|
8
|
+
# port: 27019
|
9
|
+
|
10
|
+
development:
|
11
|
+
<<: *defaults
|
12
|
+
database: <%= database %>_development
|
13
|
+
|
14
|
+
test:
|
15
|
+
<<: *defaults
|
16
|
+
database: <%= database %>_test
|
17
|
+
|
18
|
+
# set these environment variables on your prod server
|
19
|
+
production:
|
20
|
+
<<: *defaults
|
21
|
+
host: <%= ENV['MONGOID_HOST'] %>
|
22
|
+
port: <%= ENV['MONGOID_PORT'] %>
|
23
|
+
username: <%= ENV['MONGOID_USERNAME'] %>
|
24
|
+
password: <%= ENV['MONGOID_PASSWORD'] %>
|
25
|
+
database: <%= ENV['MONGOID_DATABASE'] %>
|