rails3-generators 0.16.1 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -2,6 +2,19 @@
2
2
  * Write some documentation. (In both the github wiki and the source code)
3
3
  * Remove generators that exist in other libraries
4
4
 
5
+ == 0.17.0
6
+ * enhancements
7
+ * Added a generator for creating models with no persistent.
8
+ They still include ActiveModel::Validations and ActiveModel::Serialization.
9
+
10
+ When generating properties you can use the following as types to create the required accessor
11
+
12
+ read - generate read_accessor
13
+ write - generate write_accessor
14
+ all - generate attr_accessor
15
+
16
+ (Colin Gemmel)
17
+
5
18
  == 0.16.0
6
19
  * optimize
7
20
  * Machinist generators removed. Machinist 2 (https://github.com/notahat/machinist) has its own generators.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails3-generators (0.16.1)
4
+ rails3-generators (0.17.0.beta.1)
5
5
  railties (>= 3.0.0)
6
6
 
7
7
  GEM
@@ -0,0 +1,41 @@
1
+ require 'generators/active_model'
2
+
3
+ module ActiveModel
4
+ module Generators
5
+ class ModelGenerator < Base
6
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
7
+
8
+ check_class_collision
9
+
10
+ def create_model_file
11
+ template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
12
+ end
13
+
14
+ def read_properties?
15
+ attributes.any?{|attr| attr.type == :read }
16
+ end
17
+
18
+ def read_properties
19
+ attributes.select{|attr| attr.type == :read}.map{|attr| ":#{attr.name}" }.join(",")
20
+ end
21
+
22
+ def write_properties?
23
+ attributes.any?{|attr| attr.type == :write }
24
+ end
25
+
26
+ def write_properties
27
+ attributes.select{|attr| attr.type == :write }.map{|attr| ":#{attr.name}" }.join(",")
28
+ end
29
+
30
+ def accessor_properties?
31
+ attributes.any?{|attr| attr.type == :all }
32
+ end
33
+
34
+ def accessor_properties
35
+ attributes.select{|attr| attr.type == :all }.map{|attr| ":#{attr.name}" }.join(",")
36
+ end
37
+
38
+ hook_for :test_framework
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,13 @@
1
+ class <%= class_name %>
2
+ include ActiveModel::Serialization
3
+ include ActiveModel::Validations
4
+ <% if read_properties? %>
5
+ attr_reader <%= read_properties %>
6
+ <% end %>
7
+ <% if write_properties? %>
8
+ attr_writer <%= write_properties %>
9
+ <% end %>
10
+ <% if accessor_properties? %>
11
+ attr_accessor <%= accessor_properties %>
12
+ <% end %>
13
+ end
@@ -0,0 +1,32 @@
1
+ require 'rails/generators/named_base'
2
+ require 'rails/generators/migration'
3
+ require 'rails/generators/active_model'
4
+
5
+ require 'generators/helpers/migration_helper'
6
+
7
+ module ActiveModel
8
+ module Generators
9
+ class Base < Rails::Generators::NamedBase #:nodoc:
10
+
11
+ def self.source_root
12
+ @_activemodel_source_root ||= File.expand_path(File.join(File.dirname(__FILE__),
13
+ 'active_model', generator_name, 'templates'))
14
+ end
15
+
16
+ end
17
+
18
+ class ActiveModel < Rails::Generators::ActiveModel #:nodoc:
19
+ end
20
+ end
21
+ end
22
+
23
+ module Rails
24
+ module Generators
25
+ class GeneratedAttribute #:nodoc:
26
+ def type_class
27
+ return 'DateTime' if type.to_s == 'datetime'
28
+ return type.to_s.camelcase
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  module Rails3
2
2
  module Generators
3
- VERSION = "0.16.1"
3
+ VERSION = "0.17.0"
4
4
  end
5
5
  end
@@ -5,7 +5,7 @@ end
5
5
 
6
6
  Rails::Generators.hidden_namespaces << "rails"
7
7
 
8
- %w(active_record data_mapper mongo_mapper mongoid).each do |orm|
8
+ %w(active_record data_mapper mongo_mapper mongoid active_model).each do |orm|
9
9
  Rails::Generators.hidden_namespaces <<
10
10
  [
11
11
  "#{orm}:migration",
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+ require_generator :active_model => ['model']
3
+
4
+ class ActiveModel::Generators::ModelGeneratorTest < Rails::Generators::TestCase
5
+ destination File.join(Rails.root)
6
+ tests ActiveModel::Generators::ModelGenerator
7
+
8
+ setup :prepare_destination
9
+ setup :copy_routes
10
+
11
+ test "invoke with model name" do
12
+ content = run_generator %w(Account)
13
+
14
+ assert_file "app/models/account.rb" do |account|
15
+ assert_class "Account", account do |klass|
16
+ assert_match /include ActiveModel::Validations/, klass
17
+ assert_match /include ActiveModel::Serialization/, klass
18
+ end
19
+ end
20
+ end
21
+
22
+ test "invoke with model name and accessors" do
23
+ content = run_generator %w(Account name:all age:read color:write )
24
+
25
+ assert_file "app/models/account.rb" do |account|
26
+ assert_class "Account", account do |klass|
27
+ assert_match /include ActiveModel::Validations/, klass
28
+ assert_match /include ActiveModel::Serialization/, klass
29
+ assert_match /attr_reader :age/, klass
30
+ assert_match /attr_writer :color/, klass
31
+ assert_match /attr_accessor :name/, klass
32
+ end
33
+ end
34
+ end
35
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 16
8
- - 1
9
- version: 0.16.1
7
+ - 17
8
+ - 0
9
+ version: 0.17.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jose Valim
@@ -24,7 +24,7 @@ autorequire:
24
24
  bindir: bin
25
25
  cert_chain: []
26
26
 
27
- date: 2010-12-12 00:00:00 -05:00
27
+ date: 2010-12-13 00:00:00 -05:00
28
28
  default_executable:
29
29
  dependencies:
30
30
  - !ruby/object:Gem::Dependency
@@ -114,6 +114,9 @@ files:
114
114
  - Gemfile.lock
115
115
  - README.rdoc
116
116
  - Rakefile
117
+ - lib/generators/active_model.rb
118
+ - lib/generators/active_model/model/model_generator.rb
119
+ - lib/generators/active_model/model/templates/model.rb
117
120
  - lib/generators/authlogic.rb
118
121
  - lib/generators/authlogic/session/session_generator.rb
119
122
  - lib/generators/authlogic/session/templates/session.rb
@@ -188,6 +191,7 @@ files:
188
191
  - lib/rails3-generators/version.rb
189
192
  - rails3-generators.gemspec
190
193
  - test/fixtures/routes.rb
194
+ - test/lib/generators/active_model/model_generator_test.rb
191
195
  - test/lib/generators/authlogic/session_generator_test.rb
192
196
  - test/lib/generators/data_mapper/migration_generator_test.rb
193
197
  - test/lib/generators/data_mapper/model_generator_test.rb
@@ -212,7 +216,7 @@ homepage: https://github.com/indirect/rails3-generators
212
216
  licenses: []
213
217
 
214
218
  post_install_message: "\n\
215
- rails3-generators-0.16.1\n\n\
219
+ rails3-generators-0.17.0\n\n\
216
220
  Be sure to check out the wiki, https://wiki.github.com/indirect/rails3-generators/,\n\
217
221
  for information about recent changes to this project.\n\n\
218
222
  Machinist generators have been removed. Please update your project to use Machinist 2 (https://github.com/notahat/machinist) which contains its own generators.\n\n\