Module: AppleCore::ActionController::ResourceNaming
- Defined in:
- lib/apple_core/action_controller/resource_naming.rb
Constant Summary collapse
- CONTROLLER_RESOURCE_NAME_PATTERN =
/ \A # Beginning of String (?: (?<modules> # Full Modules (?: # Match Root Module (Optional) (?<root_module> [^\:]+ # The Module Name (?=\:\:) # Which Must Be Followed By '::' ) (?:\:\:)? # Up Through the '::' But Don't # Capture If It's The Sole Module )? (?<submodules> # Match Submodule List (Optional) ( # There May Be Zero or More of These [^\:]+ # The Module Name \:\: # Up Through the '::' )*? (?<last_submodule> # The Final Submodule (Optional) [^\:]+ # The Module Name (?=\:\:) # Which Must Be Followed By '::' )? )? ) \:\: # Required Final Separator )? (?<controller_name> (?<resource_name>\w+?) # Base Resource Name (?:Index|Indicies)? # Optional Index Suffix ) Controller # Literal 'Controller' \z # End of String /x
Class Method Summary collapse
Instance Method Summary collapse
- #name_components ⇒ Object
- #plural_resource_base_class_name ⇒ Object
- #plural_resource_class_name ⇒ Object
- #plural_underscored_base_resource_name ⇒ Object
- #resource_name ⇒ Object
- #singular_resource_base_class_name ⇒ Object
- #singular_resource_class_name ⇒ Object
- #singular_underscored_base_resource_name ⇒ Object
Class Method Details
.included(base) ⇒ Object
43 44 45 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 43 def self.included(base) base.extend(self) end |
Instance Method Details
#name_components ⇒ Object
83 84 85 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 83 def name_components @name_components ||= name.match(CONTROLLER_RESOURCE_NAME_PATTERN).named_captures end |
#plural_resource_base_class_name ⇒ Object
64 65 66 67 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 64 def plural_resource_base_class_name @plural_resource_base_class_name ||= resource_name .pluralize end |
#plural_resource_class_name ⇒ Object
78 79 80 81 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 78 def plural_resource_class_name @plural_resource_class_name ||= singular_resource_class_name .pluralize end |
#plural_underscored_base_resource_name ⇒ Object
53 54 55 56 57 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 53 def plural_underscored_base_resource_name @plural_underscored_base_resource_name ||= plural_resource_base_class_name .underscore .downcase end |
#resource_name ⇒ Object
87 88 89 90 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 87 def resource_name @resource_name ||= name_components['resource_name'] .singularize end |
#singular_resource_base_class_name ⇒ Object
59 60 61 62 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 59 def singular_resource_base_class_name @singular_resource_base_class_name ||= plural_resource_base_class_name .singularize end |
#singular_resource_class_name ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 69 def singular_resource_class_name @singular_resource_class_name ||= [ name_components['root_module'], resource_name, ] .compact .join('::') end |
#singular_underscored_base_resource_name ⇒ Object
47 48 49 50 51 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 47 def singular_underscored_base_resource_name @singular_underscored_base_resource_name ||= singular_resource_base_class_name .underscore .downcase end |