medea-generators 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ require 'rails/generators/generated_attribute'
|
|
4
4
|
module Medea
|
5
5
|
module Generators
|
6
6
|
class ScaffoldGenerator < Base
|
7
|
-
no_tasks { attr_accessor :scaffold_name, :model_attributes, :controller_actions }
|
7
|
+
no_tasks { attr_accessor :scaffold_name, :model_attributes, :controller_actions, :list_properties }
|
8
8
|
|
9
9
|
argument :scaffold_name, :type => :string, :required => true, :banner => 'ModelName'
|
10
10
|
argument :args_for_c_m, :type => :array, :default => [], :banner => 'controller_actions and model:attributes'
|
@@ -26,15 +26,25 @@ module Medea
|
|
26
26
|
|
27
27
|
@controller_actions = []
|
28
28
|
@model_attributes = []
|
29
|
+
@list_properties = {}
|
29
30
|
@skip_model = options.skip_model?
|
30
31
|
@namespace_model = options.namespace_model?
|
31
32
|
@invert_actions = options.invert?
|
32
33
|
|
34
|
+
list_types = %w(has owns)
|
33
35
|
args_for_c_m.each do |arg|
|
34
36
|
if arg == '!'
|
35
37
|
@invert_actions = true
|
36
38
|
elsif arg.include?(':')
|
37
|
-
|
39
|
+
list = arg.split(':')
|
40
|
+
#if the argument is a "has" or a "owns", we treat it as a list property.
|
41
|
+
#Otherwise, it's a regular model attribute
|
42
|
+
if list_types.include? list[0]
|
43
|
+
@list_properties[list[0]] ||= []
|
44
|
+
@list_properties[list[0]] << list[1..2]
|
45
|
+
else
|
46
|
+
@model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
|
47
|
+
end
|
38
48
|
else
|
39
49
|
@controller_actions << arg
|
40
50
|
@controller_actions << 'create' if arg == 'new'
|
@@ -49,6 +59,7 @@ module Medea
|
|
49
59
|
@controller_actions = all_actions - @controller_actions
|
50
60
|
end
|
51
61
|
|
62
|
+
#we don't do anything differently if there are no attributes passed.
|
52
63
|
if @model_attributes.empty?
|
53
64
|
if model_exists?
|
54
65
|
model_columns_for_attributes.each do |column|
|
@@ -66,7 +77,7 @@ module Medea
|
|
66
77
|
end
|
67
78
|
|
68
79
|
def create_model
|
69
|
-
template 'model.rb', "app/models/#{model_path}.rb"
|
80
|
+
template 'model.rb.erb', "app/models/#{model_path}.rb"
|
70
81
|
if test_framework == :rspec
|
71
82
|
template "tests/rspec/model.rb", "spec/models/#{model_path}_spec.rb"
|
72
83
|
template 'fixtures.yml', "spec/fixtures/#{model_path.pluralize}.yml"
|
@@ -254,10 +265,13 @@ module Medea
|
|
254
265
|
end
|
255
266
|
end
|
256
267
|
|
268
|
+
def model_list_properties
|
269
|
+
class_name.constantize
|
270
|
+
|
271
|
+
end
|
272
|
+
|
257
273
|
def model_columns_for_attributes
|
258
|
-
|
259
|
-
column.name.to_s =~ /^(id|created_at|updated_at)$/
|
260
|
-
end
|
274
|
+
[]
|
261
275
|
end
|
262
276
|
|
263
277
|
def view_language
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class <%= class_name %> < Medea::JasonObject
|
2
|
+
<%
|
3
|
+
result = []
|
4
|
+
["has", "owns"].each do |l|
|
5
|
+
if list_properties[l]
|
6
|
+
list_properties[l].each do |a|
|
7
|
+
result << "#{l}_many :#{a[0]}, #{a[1]}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
%>
|
12
|
+
<%= result.join("\n ") if result.count > 0 %>
|
13
|
+
end
|
data/medea-generators.gemspec
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 4
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Michael Jensen
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-24 00:00:00 +11:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -92,7 +92,7 @@ files:
|
|
92
92
|
- lib/generators/medea/scaffold/templates/controller.rb
|
93
93
|
- lib/generators/medea/scaffold/templates/fixtures.yml
|
94
94
|
- lib/generators/medea/scaffold/templates/helper.rb
|
95
|
-
- lib/generators/medea/scaffold/templates/model.rb
|
95
|
+
- lib/generators/medea/scaffold/templates/model.rb.erb
|
96
96
|
- lib/generators/medea/scaffold/templates/tests/rspec/actions/create.rb
|
97
97
|
- lib/generators/medea/scaffold/templates/tests/rspec/actions/destroy.rb
|
98
98
|
- lib/generators/medea/scaffold/templates/tests/rspec/actions/edit.rb
|