authorized_rails_scaffolds 0.0.14 → 0.0.15
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.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/lib/authorized_rails_scaffolds.rb +23 -6
- data/lib/authorized_rails_scaffolds/helper.rb +13 -54
- data/lib/authorized_rails_scaffolds/{controller_macros.rb → macros/controller_macros.rb} +1 -1
- data/lib/authorized_rails_scaffolds/{factory_macros.rb → macros/factory_macros.rb} +5 -5
- data/lib/authorized_rails_scaffolds/macros/parent_macros.rb +56 -0
- data/lib/authorized_rails_scaffolds/macros/path_macros.rb +70 -0
- data/lib/authorized_rails_scaffolds/macros/resource_macros.rb +53 -0
- data/lib/authorized_rails_scaffolds/macros/route_example_macros.rb +65 -0
- data/lib/authorized_rails_scaffolds/{test_var_macros.rb → macros/test_var_macros.rb} +9 -9
- data/lib/authorized_rails_scaffolds/rails_erb_scaffold_helper.rb +0 -25
- data/lib/authorized_rails_scaffolds/rails_helper_helper.rb +41 -0
- data/lib/authorized_rails_scaffolds/rails_scaffold_controller_helper.rb +27 -2
- data/lib/authorized_rails_scaffolds/rspec_integration_helper.rb +9 -0
- data/lib/authorized_rails_scaffolds/rspec_scaffold_controller_helper.rb +8 -4
- data/lib/authorized_rails_scaffolds/rspec_scaffold_helper.rb +5 -4
- data/lib/authorized_rails_scaffolds/rspec_scaffold_routing_helper.rb +2 -2
- data/lib/authorized_rails_scaffolds/rspec_scaffold_view_helper.rb +1 -1
- data/lib/authorized_rails_scaffolds/version.rb +1 -1
- data/lib/generators/authorized_rails_scaffolds/install_macros/install_macros_generator.rb +2 -1
- data/lib/generators/authorized_rails_scaffolds/install_macros/templates/devise_can_can/USAGE +1 -0
- data/lib/generators/authorized_rails_scaffolds/install_macros/templates/devise_can_can/request_macros.rb +8 -0
- data/lib/generators/authorized_rails_scaffolds/install_templates/install_templates_generator.rb +14 -0
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/_form.html.erb +2 -1
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/controller.rb +68 -35
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/helper.rb +25 -0
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/index.html.erb +15 -15
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/show.html.erb +1 -1
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/controller_spec.rb +90 -84
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/edit_spec.rb +37 -30
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/index_spec.rb +56 -51
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/new_spec.rb +33 -26
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/request_spec.rb +125 -0
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/routing_spec.rb +12 -9
- data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/show_spec.rb +20 -17
- data/spec/lib/authorized_rails_scaffolds/rails_erb_scaffold_helper_spec.rb +24 -23
- data/spec/lib/authorized_rails_scaffolds/rails_helper_helper_spec.rb +66 -0
- data/spec/lib/authorized_rails_scaffolds/rails_scaffold_controller_helper_spec.rb +42 -0
- data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_controller_helper_spec.rb +7 -7
- data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_routing_helper_spec.rb +14 -14
- data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_view_helper_spec.rb +4 -4
- metadata +16 -7
- data/lib/authorized_rails_scaffolds/resource_macros.rb +0 -81
- data/lib/authorized_rails_scaffolds/route_example_macros.rb +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48159be8830cab29219981b558c48f647cac5651
|
4
|
+
data.tar.gz: 31db50aea7a19dfa206edc4b9eb0dcff5e20d48a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01f6d37305d7e270d045d18f833130b14ed50086bd8e03b83e1364496272437dc8a0d7e2d1e06ae536aca9c6e519626d8ad8271af7be6c353353feaf93e0a1fa
|
7
|
+
data.tar.gz: 90483813b42dbb7437d30f4e56782782988babdf1423c7825d3dabfefdcdc9a225c6cdf172fe97767ece17a211cbd371e4a92d4bb7214b872af6a817ef88f997
|
data/README.md
CHANGED
@@ -29,6 +29,9 @@ Create a initializer at `config/initializers/authorized_rails_scaffolds.rb` cont
|
|
29
29
|
AuthorizedRailsScaffolds.configure do |config|
|
30
30
|
# i.e. ['Category', 'User'] for Awesome/FooBar => awesome_category_user_foo_bars_path
|
31
31
|
config.parent_models = []
|
32
|
+
|
33
|
+
# toggles if shallow routes should be used
|
34
|
+
config.shallow_routes = false
|
32
35
|
end
|
33
36
|
|
34
37
|
end
|
@@ -1,14 +1,21 @@
|
|
1
1
|
require "authorized_rails_scaffolds/version"
|
2
2
|
|
3
3
|
module AuthorizedRailsScaffolds
|
4
|
+
|
5
|
+
# Configuration Value Property
|
4
6
|
class Configuration
|
5
7
|
attr_accessor :parent_models
|
8
|
+
attr_accessor :shallow_routes
|
6
9
|
|
7
10
|
def initialize
|
8
11
|
self.parent_models = []
|
12
|
+
self.shallow_routes = false
|
9
13
|
end
|
10
14
|
end
|
11
15
|
|
16
|
+
# Mounting point for macros
|
17
|
+
module Macros; end
|
18
|
+
|
12
19
|
def self.config
|
13
20
|
@config ||= Configuration.new
|
14
21
|
end
|
@@ -22,16 +29,26 @@ module AuthorizedRailsScaffolds
|
|
22
29
|
|
23
30
|
end
|
24
31
|
|
25
|
-
require "authorized_rails_scaffolds/controller_macros"
|
26
|
-
require "authorized_rails_scaffolds/factory_macros"
|
27
|
-
require "authorized_rails_scaffolds/
|
28
|
-
require "authorized_rails_scaffolds/
|
29
|
-
require "authorized_rails_scaffolds/
|
32
|
+
require "authorized_rails_scaffolds/macros/controller_macros"
|
33
|
+
require "authorized_rails_scaffolds/macros/factory_macros"
|
34
|
+
require "authorized_rails_scaffolds/macros/path_macros"
|
35
|
+
require "authorized_rails_scaffolds/macros/parent_macros"
|
36
|
+
require "authorized_rails_scaffolds/macros/resource_macros"
|
37
|
+
require "authorized_rails_scaffolds/macros/route_example_macros"
|
38
|
+
require "authorized_rails_scaffolds/macros/test_var_macros"
|
30
39
|
require "authorized_rails_scaffolds/helper"
|
31
|
-
|
40
|
+
|
41
|
+
# Rails Helpers
|
32
42
|
require "authorized_rails_scaffolds/rails_scaffold_controller_helper"
|
43
|
+
require "authorized_rails_scaffolds/rails_helper_helper"
|
44
|
+
|
45
|
+
# Erb Helpers
|
46
|
+
require "authorized_rails_scaffolds/rails_erb_scaffold_helper"
|
47
|
+
|
48
|
+
# RSpec Helpers
|
33
49
|
require "authorized_rails_scaffolds/rspec_scaffold_helper"
|
34
50
|
require "authorized_rails_scaffolds/rspec_scaffold_controller_helper"
|
35
51
|
require "authorized_rails_scaffolds/rspec_scaffold_routing_helper"
|
36
52
|
require "authorized_rails_scaffolds/rspec_scaffold_view_helper"
|
53
|
+
require "authorized_rails_scaffolds/rspec_integration_helper"
|
37
54
|
|
@@ -1,10 +1,17 @@
|
|
1
1
|
module AuthorizedRailsScaffolds
|
2
2
|
class Helper
|
3
|
-
include
|
3
|
+
include Macros::ParentMacros
|
4
|
+
include Macros::PathMacros
|
5
|
+
include Macros::ResourceMacros
|
4
6
|
|
5
7
|
def initialize(options = {})
|
6
8
|
# @local_class_name = options[:local_class_name]
|
7
|
-
|
9
|
+
|
10
|
+
# Fix for potentially plural file_name value
|
11
|
+
file_name = options[:file_name]
|
12
|
+
file_name = file_name.singularize unless file_name.nil?
|
13
|
+
|
14
|
+
@var_name = options[:var_name] || file_name # Non-namespaced variable name
|
8
15
|
|
9
16
|
# Pluralized non-namespaced variable name
|
10
17
|
@plural_var_name ||= options[:plural_var_name]
|
@@ -13,6 +20,8 @@ module AuthorizedRailsScaffolds
|
|
13
20
|
# options[:namespace_prefix]
|
14
21
|
|
15
22
|
@singular_table_name = options[:singular_table_name]
|
23
|
+
|
24
|
+
@human_name = options[:human_name]
|
16
25
|
end
|
17
26
|
|
18
27
|
# Non-namespaced variable name (i.e. foo_bar)
|
@@ -24,59 +33,9 @@ module AuthorizedRailsScaffolds
|
|
24
33
|
@plural_var_name
|
25
34
|
end
|
26
35
|
|
27
|
-
|
28
|
-
|
29
|
-
unless @route_prefix_values
|
30
|
-
@route_prefix_values = parent_module_groups || []
|
31
|
-
@route_prefix_values += parent_model_tables
|
32
|
-
@route_prefix_values = @route_prefix_values.reject{|x|x.blank?}
|
33
|
-
end
|
34
|
-
@route_prefix_values
|
35
|
-
end
|
36
|
-
|
37
|
-
def collection_route_prefix
|
38
|
-
@collection_route_prefix ||= (route_prefix_values + [resource_table_name.pluralize]).join('_')
|
39
|
-
end
|
40
|
-
|
41
|
-
def member_route_prefix
|
42
|
-
@member_route_prefix ||= (route_prefix_values + [resource_table_name]).join('_')
|
43
|
-
end
|
44
|
-
|
45
|
-
def parent_variables
|
46
|
-
@parent_variables ||= parent_model_tables.collect{ |parent_table| parent_variable(parent_table) }
|
47
|
-
end
|
48
|
-
|
49
|
-
def controller_show_route(variable = nil)
|
50
|
-
variables = [] + parent_variables
|
51
|
-
variables += [variable] unless variable.nil?
|
52
|
-
controller_routes = "#{member_route_prefix}_path"
|
53
|
-
controller_routes += "(#{variables.join(', ')})" if variables.any?
|
54
|
-
controller_routes
|
55
|
-
end
|
56
|
-
|
57
|
-
def controller_index_path
|
58
|
-
variables = parent_variables
|
59
|
-
controller_index_path = "#{collection_route_prefix}_path"
|
60
|
-
controller_index_path += "(#{variables.join(', ')})" if variables.any?
|
61
|
-
controller_index_path
|
62
|
-
end
|
63
|
-
|
64
|
-
def controller_index_route
|
65
|
-
variables = parent_variables
|
66
|
-
controller_index_route = "#{collection_route_prefix}_url"
|
67
|
-
controller_index_route += "(#{variables.join(', ')})" if variables.any?
|
68
|
-
controller_index_route
|
69
|
-
end
|
70
|
-
|
71
|
-
def references_show_route(attribute_name, variable = nil)
|
72
|
-
variable ||= "#{resource_var}.#{attribute_name}"
|
73
|
-
path_variables = [parent_module_groups + [attribute_name]]
|
74
|
-
|
75
|
-
references_show_route = path_variables.join('_')
|
76
|
-
references_show_route += "_path(#{variable})"
|
77
|
-
references_show_route
|
36
|
+
def shallow_routes?
|
37
|
+
!!AuthorizedRailsScaffolds.config.shallow_routes
|
78
38
|
end
|
79
39
|
|
80
40
|
end
|
81
|
-
|
82
41
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# also makes use of @controller_class_name value
|
5
5
|
#
|
6
|
-
module ControllerMacros
|
6
|
+
module AuthorizedRailsScaffolds::Macros::ControllerMacros
|
7
7
|
|
8
8
|
# The namespaced class the Controller inherits from (i.e. Example::ApplicationController)
|
9
9
|
def application_controller_class
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module FactoryMacros
|
1
|
+
module AuthorizedRailsScaffolds::Macros::FactoryMacros
|
2
2
|
|
3
3
|
# Returns code that will generate attribute_value as an attribute_type
|
4
4
|
def factory_attribute_value(attribute_type, attribute_value)
|
@@ -47,18 +47,18 @@ module FactoryMacros
|
|
47
47
|
|
48
48
|
def build_extra_factory_params(parent_table_name = nil)
|
49
49
|
if parent_table_name.nil?
|
50
|
-
attribute =
|
50
|
+
attribute = parent_model_names.last
|
51
51
|
else
|
52
|
-
parent_index =
|
52
|
+
parent_index = parent_model_names.index(parent_table_name.to_s)
|
53
53
|
unless parent_index.nil? || parent_index == 0
|
54
|
-
attribute =
|
54
|
+
attribute = parent_model_names[parent_index - 1]
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
if attribute.nil?
|
59
59
|
return ''
|
60
60
|
else
|
61
|
-
return ", :#{attribute} => #{
|
61
|
+
return ", :#{attribute} => #{references_test_name(attribute)}"
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module AuthorizedRailsScaffolds::Macros::ParentMacros
|
2
|
+
|
3
|
+
### Parent Models ###
|
4
|
+
|
5
|
+
# An array of parent model classes (i.e. ['User', 'Category])
|
6
|
+
def parent_models
|
7
|
+
@parent_models ||= AuthorizedRailsScaffolds.config.parent_models
|
8
|
+
end
|
9
|
+
|
10
|
+
# Table names of parent models (i.e. ['user', 'category'])
|
11
|
+
def parent_model_names
|
12
|
+
@parent_model_names ||= parent_models.map { |model| model.underscore }
|
13
|
+
end
|
14
|
+
|
15
|
+
# Variable name used to save a parent_table_name
|
16
|
+
def parent_variable(parent_table_name)
|
17
|
+
"@#{parent_table_name}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def parent_sym(parent_table_name)
|
21
|
+
":#{parent_table_name}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def parent_variables(use_shallow_route=false)
|
25
|
+
@parent_variables ||= parent_model_names.collect{ |parent_table| parent_variable(parent_table) }
|
26
|
+
use_shallow_route ? @parent_variables[0..-2] : @parent_variables
|
27
|
+
end
|
28
|
+
|
29
|
+
### Parent Modules ###
|
30
|
+
|
31
|
+
# The parent modules of a controller (i.e. ['Api', 'V1'])
|
32
|
+
def parent_modules
|
33
|
+
@parent_modules ||= modular_class_name.nil? ? [] : modular_class_name.split('::')[0..-2]
|
34
|
+
end
|
35
|
+
|
36
|
+
# Array of symbols used for links to parents (i.e. ['api', 'v1'])
|
37
|
+
def parent_module_groups
|
38
|
+
@parent_module_groups ||= parent_modules.map { |parent_module| parent_module.underscore }
|
39
|
+
end
|
40
|
+
|
41
|
+
# Returns the parent model required to create the model
|
42
|
+
def model_parent_name(model_name)
|
43
|
+
if model_name == resource_name
|
44
|
+
return parent_model_names.any? ? parent_model_names.last : nil
|
45
|
+
else
|
46
|
+
parent_index = parent_model_names.index(model_name.to_s)
|
47
|
+
if parent_index.nil? || parent_index == 0
|
48
|
+
return nil
|
49
|
+
else
|
50
|
+
return parent_model_names[parent_index - 1]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module AuthorizedRailsScaffolds::Macros::PathMacros
|
2
|
+
|
3
|
+
def controller_index_path
|
4
|
+
variables = parent_variables
|
5
|
+
controller_index_path = "#{collection_route_prefix}_path"
|
6
|
+
controller_index_path += "(#{variables.join(', ')})" if variables.any?
|
7
|
+
controller_index_path
|
8
|
+
end
|
9
|
+
|
10
|
+
def controller_index_route
|
11
|
+
variables = parent_variables
|
12
|
+
controller_index_route = "#{collection_route_prefix}_url"
|
13
|
+
controller_index_route += "(#{variables.join(', ')})" if variables.any?
|
14
|
+
controller_index_route
|
15
|
+
end
|
16
|
+
|
17
|
+
def controller_show_route(variable = nil)
|
18
|
+
variables = [] + parent_variables
|
19
|
+
variables += [variable] unless variable.nil?
|
20
|
+
controller_routes = "#{member_route_prefix}_path"
|
21
|
+
controller_routes += "(#{variables.join(', ')})" if variables.any?
|
22
|
+
controller_routes
|
23
|
+
end
|
24
|
+
|
25
|
+
def controller_show_route(variable)
|
26
|
+
variables = []
|
27
|
+
variables += parent_variables(shallow_routes?)
|
28
|
+
variables += [variable] unless variable.nil?
|
29
|
+
controller_routes = "#{member_route_prefix(shallow_routes?)}_path"
|
30
|
+
controller_routes += "(#{variables.join(', ')})" if variables.any?
|
31
|
+
controller_routes
|
32
|
+
end
|
33
|
+
|
34
|
+
def controller_edit_route(variable)
|
35
|
+
"edit_#{controller_show_route(variable)}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def controller_new_route
|
39
|
+
controller_routes = "#{member_route_prefix}_path"
|
40
|
+
controller_routes += "(#{parent_variables.join(', ')})" if parent_variables.any?
|
41
|
+
"new_#{controller_routes}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def references_show_route(attribute_name, variable = nil)
|
45
|
+
variable ||= "#{resource_var}.#{attribute_name}"
|
46
|
+
path_variables = [parent_module_groups + [attribute_name]]
|
47
|
+
|
48
|
+
references_show_route = path_variables.join('_')
|
49
|
+
references_show_route += "_path(#{variable})"
|
50
|
+
references_show_route
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
# Route Prefix parts i.e. ['awesome', 'user', 'company']
|
56
|
+
def route_prefix_values(use_shallow_route=false)
|
57
|
+
route_prefix_values = parent_module_groups || []
|
58
|
+
route_prefix_values += use_shallow_route ? parent_model_names[0..-2] : parent_model_names
|
59
|
+
route_prefix_values = route_prefix_values.reject{|x|x.blank?}
|
60
|
+
end
|
61
|
+
|
62
|
+
def collection_route_prefix
|
63
|
+
@collection_route_prefix ||= (route_prefix_values + [resource_array_name]).join('_')
|
64
|
+
end
|
65
|
+
|
66
|
+
def member_route_prefix(use_shallow_route=false)
|
67
|
+
(route_prefix_values(use_shallow_route) + [resource_name]).join('_')
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#
|
2
|
+
# requires modular_class_name to be defined
|
3
|
+
#
|
4
|
+
module AuthorizedRailsScaffolds::Macros::ResourceMacros
|
5
|
+
|
6
|
+
### Base Resource ###
|
7
|
+
|
8
|
+
# Human name of the resource being tested (i.e. 'Foo bar')
|
9
|
+
def resource_human_name
|
10
|
+
@resource_human_name ||= @human_name || resource_name.titleize.humanize
|
11
|
+
end
|
12
|
+
|
13
|
+
# Class name of the resource being tested (i.e. 'FooBar')
|
14
|
+
def resource_class
|
15
|
+
# @local_class_name
|
16
|
+
@resource_class ||= (modular_class_name.nil? ? nil : modular_class_name.split('::')[-1]) || var_name.classify
|
17
|
+
end
|
18
|
+
|
19
|
+
# Table name of the Resource being tested (i.e. foo_bar)
|
20
|
+
def resource_name
|
21
|
+
@resource_name ||= (var_name || resource_class.underscore)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Symbol used to represent resource (i.e. :foo_bar)
|
25
|
+
def resource_symbol
|
26
|
+
@resource_symbol ||= ":#{resource_name}"
|
27
|
+
end
|
28
|
+
|
29
|
+
# Variable resource is assigned to in a singular context (i.e. @foo_bar)
|
30
|
+
def resource_var
|
31
|
+
@resource_var ||= "@#{resource_name}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Name for plural of a resource
|
35
|
+
def resource_array_name
|
36
|
+
@resource_array_name ||= (plural_var_name || resource_name.pluralize)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Variable resource is assigned to in a plural context (i.e. @foo_bars)
|
40
|
+
def resource_array_var
|
41
|
+
@resource_array_var ||= "@#{resource_array_name}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def resource_array_sym
|
45
|
+
@resource_array_sym ||= ":#{resource_array_name}"
|
46
|
+
end
|
47
|
+
|
48
|
+
# Directory of the current resource: i.e. awesome/foo_bars
|
49
|
+
def resource_directory
|
50
|
+
@resource_directory = ((parent_module_groups || []) + [resource_array_name]).join("/")
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module AuthorizedRailsScaffolds::Macros::RouteExampleMacros
|
2
|
+
|
3
|
+
# Example index route: i.e. /awesome/users/2/foo_bars
|
4
|
+
def example_index_path
|
5
|
+
unless @example_index_path
|
6
|
+
example_index_path_parts = []
|
7
|
+
|
8
|
+
parent_model_names.each do |parent_model|
|
9
|
+
# users, 2
|
10
|
+
parent_value = example_parent_values["#{parent_model}_id"]
|
11
|
+
example_index_path_parts << parent_model.pluralize
|
12
|
+
example_index_path_parts << parent_value
|
13
|
+
end
|
14
|
+
|
15
|
+
# Example index route: i.e. /awesome/users/2/foo_bars
|
16
|
+
@example_index_path = [parent_module_groups + example_index_path_parts + [resource_array_name]].join("/")
|
17
|
+
end
|
18
|
+
"/#{@example_index_path}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def example_show_path
|
22
|
+
unless @example_show_path
|
23
|
+
example_show_path_parts = []
|
24
|
+
|
25
|
+
parent_names = shallow_routes? ? parent_model_names[0..-2] : parent_model_names
|
26
|
+
parent_names.each do |parent_model|
|
27
|
+
# users, 2
|
28
|
+
parent_value = example_parent_values["#{parent_model}_id"]
|
29
|
+
example_show_path_parts << parent_model.pluralize
|
30
|
+
example_show_path_parts << parent_value
|
31
|
+
end
|
32
|
+
|
33
|
+
# Example index route: i.e. /awesome/users/2/foo_bars
|
34
|
+
@example_show_path = [parent_module_groups + example_show_path_parts + [resource_array_name]].join("/")
|
35
|
+
end
|
36
|
+
"/#{@example_show_path}/1"
|
37
|
+
end
|
38
|
+
|
39
|
+
# Extra params for an example controller path: i.e. ', :user_id => 2'
|
40
|
+
def example_index_path_extra_params
|
41
|
+
@example_index_path_extra_params ||= example_parent_values.map{ |parent_model_id, parent_value| ", :#{parent_model_id} => \"#{parent_value}\"" }.join('')
|
42
|
+
end
|
43
|
+
|
44
|
+
def example_show_path_extra_params
|
45
|
+
@example_show_path_extra_params ||= example_parent_values(shallow_routes?).map{ |parent_model_id, parent_value| ", :#{parent_model_id} => \"#{parent_value}\"" }.join('')
|
46
|
+
end
|
47
|
+
|
48
|
+
def example_route_extra_params(use_shallow_route=false)
|
49
|
+
@example_route_extra_params ||= parent_model_names.collect{ |parent_table| ":#{parent_table}_id => #{references_test_name(parent_table)}.to_param" }
|
50
|
+
use_shallow_route ? @example_route_extra_params[0..-2] : @example_route_extra_params
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
# Creates example values for parent id params (i.e. :user_id => 2)
|
56
|
+
def example_parent_values(use_shallow_route=false)
|
57
|
+
example_parent_values = {}
|
58
|
+
parent_models = use_shallow_route ? parent_model_names[0..-2] : parent_model_names
|
59
|
+
parent_models.each_with_index do |parent_model, index|
|
60
|
+
example_parent_values["#{parent_model}_id"] = index + 2
|
61
|
+
end
|
62
|
+
example_parent_values
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|