view_mapper 0.3.2 → 0.3.3
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 +3 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/view_mapper/belongs_to_parent_models.rb +130 -0
- data/lib/view_mapper/model_info.rb +2 -6
- data/lib/view_mapper/views/auto_complete/auto_complete_view.rb +2 -1
- data/lib/view_mapper/views/belongs_to/belongs_to_view.rb +1 -86
- data/lib/view_mapper/views/belongs_to/templates/{model.rb → model.erb} +2 -2
- data/lib/view_mapper/views/belongs_to/templates/view_form.html.erb +1 -1
- data/lib/view_mapper/views/belongs_to/templates/view_index.html.erb +1 -1
- data/lib/view_mapper/views/belongs_to/templates/view_show.html.erb +1 -1
- data/lib/view_mapper/views/belongs_to_auto_complete/belongs_to_auto_complete_view.rb +60 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/controller.rb +90 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/layout.html.erb +18 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/migration.rb +19 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/model.erb +16 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/view_edit.html.erb +11 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/view_form.html.erb +13 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/view_index.html.erb +30 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/view_new.html.erb +10 -0
- data/lib/view_mapper/views/belongs_to_auto_complete/templates/view_show.html.erb +16 -0
- data/lib/view_mapper/views/paperclip/paperclip_view.rb +2 -1
- data/lib/view_mapper.rb +2 -0
- data/test/test_helper.rb +29 -7
- data/test/views/auto_complete/auto_complete_test.rb +1 -1
- data/test/views/belongs_to/belongs_to_test.rb +13 -10
- data/test/views/belongs_to/expected_templates/_form.html.erb +1 -1
- data/test/views/belongs_to/expected_templates/index.html.erb +1 -1
- data/test/views/belongs_to/expected_templates/show.html.erb +1 -1
- data/test/views/belongs_to/expected_templates/some_other_model.rb +2 -2
- data/test/views/belongs_to_auto_complete/belongs_to_auto_complete_test.rb +489 -0
- data/test/views/belongs_to_auto_complete/expected_templates/_form.html.erb +13 -0
- data/test/views/belongs_to_auto_complete/expected_templates/create_some_other_models.rb +18 -0
- data/test/views/belongs_to_auto_complete/expected_templates/edit.html.erb +11 -0
- data/test/views/belongs_to_auto_complete/expected_templates/expected_routes.rb +47 -0
- data/test/views/belongs_to_auto_complete/expected_templates/index.html.erb +24 -0
- data/test/views/belongs_to_auto_complete/expected_templates/new.html.erb +10 -0
- data/test/views/belongs_to_auto_complete/expected_templates/show.html.erb +17 -0
- data/test/views/belongs_to_auto_complete/expected_templates/some_other_model.rb +16 -0
- data/test/views/belongs_to_auto_complete/expected_templates/some_other_models.html.erb +18 -0
- data/test/views/belongs_to_auto_complete/expected_templates/some_other_models_controller.rb +89 -0
- data/test/views/belongs_to_auto_complete/expected_templates/standard_routes.rb +43 -0
- data/view_mapper.gemspec +35 -6
- metadata +33 -4
data/test/test_helper.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'ftools'
|
2
1
|
require 'rubygems'
|
3
2
|
require 'test/unit'
|
4
3
|
require 'shoulda'
|
@@ -51,6 +50,7 @@ def setup_test_model(paperclip_columns = false)
|
|
51
50
|
end
|
52
51
|
end
|
53
52
|
ActiveRecord::Base.send(:include, MockPaperclip)
|
53
|
+
ActionController::Base.send(:include, MockAutoComplete)
|
54
54
|
Object.const_get("Testy")
|
55
55
|
end
|
56
56
|
|
@@ -85,11 +85,13 @@ def setup_parent_test_model(create_foreign_key = true, child_belongs_to_parent =
|
|
85
85
|
def parent_name
|
86
86
|
'something'
|
87
87
|
end
|
88
|
+
def parent_name=
|
89
|
+
end
|
88
90
|
end
|
89
91
|
Object.const_get("Parent")
|
90
92
|
end
|
91
93
|
|
92
|
-
def setup_second_parent_test_model(
|
94
|
+
def setup_second_parent_test_model(has_virtual_attribute_setter = true, has_virtual_attribute = true, has_foreign_key = true, parent_has_name_method = false, parent_has_name_column = true)
|
93
95
|
ActiveRecord::Base.connection.create_table :second_parents, :force => true do |table|
|
94
96
|
table.column :name, :string unless !parent_has_name_column
|
95
97
|
table.column :other_field, :string
|
@@ -108,9 +110,22 @@ def setup_second_parent_test_model(has_name_virtual_attribute = true, has_foreig
|
|
108
110
|
end
|
109
111
|
SomeOtherModel.class_eval do
|
110
112
|
belongs_to :second_parent
|
111
|
-
|
112
|
-
|
113
|
-
|
113
|
+
if has_virtual_attribute
|
114
|
+
def second_parent_name
|
115
|
+
'something'
|
116
|
+
end
|
117
|
+
def second_parent_other_field
|
118
|
+
'something'
|
119
|
+
end
|
120
|
+
end
|
121
|
+
if has_virtual_attribute_setter
|
122
|
+
def second_parent_name=
|
123
|
+
'something'
|
124
|
+
end
|
125
|
+
def second_parent_other_field=
|
126
|
+
'something'
|
127
|
+
end
|
128
|
+
end
|
114
129
|
end
|
115
130
|
end
|
116
131
|
|
@@ -142,8 +157,15 @@ class Rails::Generator::NamedBase
|
|
142
157
|
end
|
143
158
|
|
144
159
|
module ActionController
|
145
|
-
class Base
|
146
|
-
|
160
|
+
class Base; end
|
161
|
+
end
|
162
|
+
|
163
|
+
module MockAutoComplete
|
164
|
+
def self.included(base)
|
165
|
+
base.extend(ClassMethods)
|
166
|
+
end
|
167
|
+
module ClassMethods
|
168
|
+
def auto_complete_for
|
147
169
|
end
|
148
170
|
end
|
149
171
|
end
|
@@ -122,7 +122,7 @@ class AutoCompleteViewTest < Test::Unit::TestCase
|
|
122
122
|
test_routes_file = expected_path + '/routes.rb'
|
123
123
|
ViewForGenerator.any_instance.stubs(:destination_path).returns test_routes_file
|
124
124
|
ScaffoldForViewGenerator.any_instance.stubs(:destination_path).returns test_routes_file
|
125
|
-
|
125
|
+
FileUtils.copy(standard_routes_file, test_routes_file)
|
126
126
|
Rails::Generator::Commands::Create.any_instance.stubs(:route_file).returns(test_routes_file)
|
127
127
|
@generator_script.run(generator_script_cmd_line(gen, ['--view', 'auto_complete:address']))
|
128
128
|
assert_equal File.open(expected_routes_file).read, File.open(test_routes_file).read
|
@@ -76,7 +76,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
76
76
|
setup do
|
77
77
|
setup_test_model
|
78
78
|
setup_parent_test_model
|
79
|
-
setup_second_parent_test_model(false)
|
79
|
+
setup_second_parent_test_model(true, false)
|
80
80
|
end
|
81
81
|
|
82
82
|
should "return a warning and stop when the problem model is specified" do
|
@@ -99,7 +99,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
99
99
|
setup do
|
100
100
|
setup_test_model
|
101
101
|
setup_parent_test_model
|
102
|
-
setup_second_parent_test_model(true, true, false, false)
|
102
|
+
setup_second_parent_test_model(true, true, true, false, false)
|
103
103
|
end
|
104
104
|
|
105
105
|
should "return a warning and stop when the problem model is specified" do
|
@@ -122,7 +122,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
122
122
|
setup do
|
123
123
|
setup_test_model
|
124
124
|
setup_parent_test_model
|
125
|
-
setup_second_parent_test_model(true, true, true, false)
|
125
|
+
setup_second_parent_test_model(true, true, true, true, false)
|
126
126
|
end
|
127
127
|
|
128
128
|
should "continue to generate as usual" do
|
@@ -137,7 +137,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
137
137
|
setup do
|
138
138
|
setup_test_model
|
139
139
|
setup_parent_test_model
|
140
|
-
setup_second_parent_test_model(true, false)
|
140
|
+
setup_second_parent_test_model(true, true, false)
|
141
141
|
end
|
142
142
|
|
143
143
|
should "return a warning and stop when the problem model is specified" do
|
@@ -161,7 +161,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
161
161
|
setup_test_model
|
162
162
|
setup_parent_test_model
|
163
163
|
setup_second_parent_test_model
|
164
|
-
@gen = new_generator_for_test_model('view_for', ['--view', 'belongs_to'], 'some_other_model')
|
164
|
+
@gen = new_generator_for_test_model('view_for', ['--view', 'belongs_to:parent,second_parent[other_field]'], 'some_other_model')
|
165
165
|
end
|
166
166
|
|
167
167
|
should "return the proper source root" do
|
@@ -199,14 +199,14 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
199
199
|
setup_test_model
|
200
200
|
setup_parent_test_model
|
201
201
|
setup_second_parent_test_model
|
202
|
-
@gen = new_generator_for_test_model('scaffold_for_view', ['--view', 'belongs_to:parent,second_parent'], 'some_other_model')
|
202
|
+
@gen = new_generator_for_test_model('scaffold_for_view', ['--view', 'belongs_to:parent,second_parent[other_field]'], 'some_other_model')
|
203
203
|
end
|
204
204
|
|
205
205
|
should "render the model template as expected" do
|
206
206
|
@parent_models = @gen.parent_models
|
207
207
|
@class_name = @gen.class_name
|
208
208
|
@attributes = @gen.attributes
|
209
|
-
template_file = File.open(@gen.source_path("model.
|
209
|
+
template_file = File.open(@gen.source_path("model.erb"))
|
210
210
|
result = ERB.new(template_file.read, nil, '-').result(binding)
|
211
211
|
expected_file = File.open(File.join(File.dirname(__FILE__), "expected_templates/some_other_model.rb"))
|
212
212
|
assert_equal expected_file.read, result
|
@@ -305,9 +305,9 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
305
305
|
'functional_test.rb' => 'test/functional/some_other_models_controller_test.rb',
|
306
306
|
'helper.rb' => 'app/helpers/some_other_models_helper.rb',
|
307
307
|
'helper_test.rb' => 'test/unit/helpers/some_other_models_helper_test.rb',
|
308
|
-
'model.
|
309
|
-
'unit_test.rb'
|
310
|
-
'fixtures.yml'
|
308
|
+
'model.erb' => 'app/models/some_other_model.rb',
|
309
|
+
'unit_test.rb' => 'test/unit/some_other_model_test.rb',
|
310
|
+
'fixtures.yml' => 'test/fixtures/some_other_models.yml'
|
311
311
|
}.each { |template, target| Rails::Generator::Commands::Create.any_instance.expects(:template).with(template, target) }
|
312
312
|
|
313
313
|
Rails::Generator::Commands::Create.any_instance.expects(:route_resources).with('some_other_models')
|
@@ -345,4 +345,7 @@ class BelongsToViewTest < Test::Unit::TestCase
|
|
345
345
|
end
|
346
346
|
end
|
347
347
|
|
348
|
+
def field_for(parent_model)
|
349
|
+
@gen.field_for(parent_model)
|
350
|
+
end
|
348
351
|
end
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<tr>
|
12
12
|
<td><%=h some_other_model.name %></td>
|
13
13
|
<td><%=h some_other_model.parent_name %></td>
|
14
|
-
<td><%=h some_other_model.
|
14
|
+
<td><%=h some_other_model.second_parent_other_field %></td>
|
15
15
|
<td><%= link_to 'Show', some_other_model %></td>
|
16
16
|
<td><%= link_to 'Edit', edit_some_other_model_path(some_other_model) %></td>
|
17
17
|
<td><%= link_to 'Destroy', some_other_model, :confirm => 'Are you sure?', :method => :delete %></td>
|