rails3-generators 0.2.0 → 0.3.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/README.rdoc CHANGED
@@ -14,4 +14,6 @@ Haml: Paul Berry, Anuj Dutta, Louis T
14
14
 
15
15
  Factory Girl: Paul Berry
16
16
 
17
- Authlogic: Jeff Tucker
17
+ Authlogic: Jeff Tucker
18
+
19
+ MongoMapper: Jai-Gouk Kim
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -0,0 +1,80 @@
1
+ require 'rails/generators/named_base'
2
+ # require 'rails/generators/migration'
3
+ require 'rails/generators/active_model'
4
+
5
+ module Mongomapper
6
+ module Generators
7
+ class Base < Rails::Generators::NamedBase #:nodoc:
8
+ # include Rails::Generators::Migration
9
+
10
+ def self.source_root
11
+ @_mongomapper_source_root ||= File.expand_path(File.join(File.dirname(__FILE__),
12
+ 'mongomapper', generator_name, 'templates'))
13
+ 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
+ end
34
+
35
+ class ActiveModel < Rails::Generators::ActiveModel #:nodoc:
36
+ def self.all(klass)
37
+ "#{klass}.all"
38
+ end
39
+
40
+ def self.find(klass, params=nil)
41
+ "#{klass}.first(#{params})"
42
+ end
43
+
44
+ def self.build(klass, params=nil)
45
+ if params
46
+ "#{klass}.new(#{params})"
47
+ else
48
+ "#{klass}.new"
49
+ end
50
+ end
51
+
52
+ def save
53
+ "#{name}.save"
54
+ end
55
+
56
+ def update_attributes(params=nil)
57
+ "#{name}.update(#{params})"
58
+ end
59
+
60
+ def errors
61
+ "#{name}.errors"
62
+ end
63
+
64
+ def destroy
65
+ "#{name}.destroy"
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ module Rails
72
+ module Generators
73
+ class GeneratedAttribute #:nodoc:
74
+ def type_class
75
+ return 'DateTime' if type.to_s == 'datetime'
76
+ return type.to_s.camelcase
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,29 @@
1
+ require 'generators/mongomapper'
2
+
3
+ module Mongomapper
4
+ module Generators
5
+ class ModelGenerator < Base
6
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
7
+ # class_option :_id, :type => :numeric, :desc => "The id to used in the migration"
8
+
9
+ check_class_collision
10
+
11
+ # class_option :migration, :type => :boolean
12
+ class_option :timestamps, :type => :boolean
13
+ class_option :parent, :type => :string, :desc => "The parent class for the generated model"
14
+
15
+ # def create_migration_file
16
+ # if options[:migration] && options[:parent].nil?
17
+ # file_name = "create_#{file_path.gsub(/\//, '_').pluralize}"
18
+ # migration_template "migration.rb", "db/migrate/#{file_name}.rb"
19
+ # end
20
+ # end
21
+
22
+ def create_model_file
23
+ template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
24
+ end
25
+
26
+ hook_for :test_framework
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ class <%= class_name %><%= "< #{options[:parent].classify}" if options[:parent] %>
2
+ <% unless options[:parent] -%>
3
+ include MongoMapper::Document
4
+
5
+ key :key, String
6
+
7
+ timestamps!
8
+
9
+ # Validations :::::::::::::::::::::::::::::::::::::::::::::::::::::
10
+ # validates_presence_of :attribute
11
+
12
+ # Assocations :::::::::::::::::::::::::::::::::::::::::::::::::::::
13
+ # belongs_to :model
14
+ # many :model
15
+ # one :model
16
+
17
+ # Callbacks :::::::::::::::::::::::::::::::::::::::::::::::::::::::
18
+ # before_craete :your_model_method
19
+ # after_create :your_model_method
20
+ # before_upate :your_model_method
21
+
22
+ <% end -%>
23
+ <% attributes.each do |attribute| -%>
24
+ key :<%= attribute.name %>, <%= attribute.type_class %>
25
+ <% end -%>
26
+ end
@@ -0,0 +1,15 @@
1
+ require 'generators/mongomapper'
2
+
3
+ module MongoMapper
4
+ module Generators
5
+ class ObserverGenerator < Base
6
+ check_class_collision :suffix => "Observer"
7
+
8
+ def create_observer_file
9
+ template 'observer.rb', File.join('app/models', class_path, "#{file_name}_observer.rb")
10
+ end
11
+
12
+ hook_for :test_framework
13
+ end
14
+ end
15
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper')
1
+ vrequire File.expand_path(File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper')
2
2
 
3
3
  describe <%= class_name %> do
4
4
  before(:each) do
@@ -11,3 +11,4 @@ describe <%= class_name %> do
11
11
  <%= class_name %>.create!(@valid_attributes)
12
12
  end
13
13
  end
14
+
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rails3-generators}
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jose Valim", "Anuj Dutta", "Paul Berry", "Jeff Tucker", "Louis T."]
@@ -44,6 +44,10 @@ Gem::Specification.new do |s|
44
44
  "lib/generators/haml/scaffold/templates/layout.haml.erb",
45
45
  "lib/generators/haml/scaffold/templates/new.haml.erb",
46
46
  "lib/generators/haml/scaffold/templates/show.haml.erb",
47
+ "lib/generators/mongomapper.rb",
48
+ "lib/generators/mongomapper/model/model_generator.rb",
49
+ "lib/generators/mongomapper/model/templates/model.rb",
50
+ "lib/generators/mongomapper/observer/observer_generator.rb",
47
51
  "lib/generators/rspec.rb",
48
52
  "lib/generators/rspec/controller/controller_generator.rb",
49
53
  "lib/generators/rspec/controller/templates/controller_spec.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails3-generators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Valim
@@ -63,6 +63,10 @@ files:
63
63
  - lib/generators/haml/scaffold/templates/layout.haml.erb
64
64
  - lib/generators/haml/scaffold/templates/new.haml.erb
65
65
  - lib/generators/haml/scaffold/templates/show.haml.erb
66
+ - lib/generators/mongomapper.rb
67
+ - lib/generators/mongomapper/model/model_generator.rb
68
+ - lib/generators/mongomapper/model/templates/model.rb
69
+ - lib/generators/mongomapper/observer/observer_generator.rb
66
70
  - lib/generators/rspec.rb
67
71
  - lib/generators/rspec/controller/controller_generator.rb
68
72
  - lib/generators/rspec/controller/templates/controller_spec.rb