Module: AppleCore::ActionController::ResourceNaming
- Defined in:
- lib/apple_core/action_controller/resource_naming.rb
Constant Summary collapse
- CONTROLLER_RESOURCE_NAME_PATTERN =
rubocop:disable Lint/MixedRegexpCaptureTypes
/ \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 )? ( # There Can Be A Version V # A Literal V (?<version> \d+ # The Version Number ) (?:::)? # 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> (?<base_resource_name>\w+?) # Base Resource Name (?:Index|Indicies)? # Optional Index Suffix ) Controller # Literal 'Controller' \z # End of String /x
Class Method Summary collapse
-
.included(base) ⇒ Object
rubocop:enable Lint/MixedRegexpCaptureTypes.
Instance Method Summary collapse
- #base_resource_name ⇒ Object
- #name_components ⇒ Object
- #plural_resource_base_class_name ⇒ Object
- #plural_resource_class_name ⇒ Object
- #plural_underscored_base_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
rubocop:enable Lint/MixedRegexpCaptureTypes
53 54 55 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 53 def self.included(base) base.extend(self) end |
Instance Method Details
#base_resource_name ⇒ Object
97 98 99 100 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 97 def base_resource_name @base_resource_name ||= name_components['base_resource_name'] .singularize end |
#name_components ⇒ Object
93 94 95 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 93 def name_components @name_components ||= name.match(CONTROLLER_RESOURCE_NAME_PATTERN).named_captures end |
#plural_resource_base_class_name ⇒ Object
74 75 76 77 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 74 def plural_resource_base_class_name @plural_resource_base_class_name ||= base_resource_name .pluralize end |
#plural_resource_class_name ⇒ Object
88 89 90 91 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 88 def plural_resource_class_name @plural_resource_class_name ||= singular_resource_class_name .pluralize end |
#plural_underscored_base_resource_name ⇒ Object
63 64 65 66 67 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 63 def plural_underscored_base_resource_name @plural_underscored_base_resource_name ||= plural_resource_base_class_name .underscore .downcase end |
#singular_resource_base_class_name ⇒ Object
69 70 71 72 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 69 def singular_resource_base_class_name @singular_resource_base_class_name ||= plural_resource_base_class_name .singularize end |
#singular_resource_class_name ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 79 def singular_resource_class_name @singular_resource_class_name ||= [ name_components['modules'], base_resource_name, ] .compact .join('::') end |
#singular_underscored_base_resource_name ⇒ Object
57 58 59 60 61 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 57 def singular_underscored_base_resource_name @singular_underscored_base_resource_name ||= singular_resource_base_class_name .underscore .downcase end |