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 )? (?<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
45 46 47 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 45 def self.included(base) base.extend(self) end |
Instance Method Details
#base_resource_name ⇒ Object
89 90 91 92 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 89 def base_resource_name @base_resource_name ||= name_components['base_resource_name'] .singularize end |
#name_components ⇒ Object
85 86 87 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 85 def name_components @name_components ||= name.match(CONTROLLER_RESOURCE_NAME_PATTERN).named_captures end |
#plural_resource_base_class_name ⇒ Object
66 67 68 69 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 66 def plural_resource_base_class_name @plural_resource_base_class_name ||= base_resource_name .pluralize end |
#plural_resource_class_name ⇒ Object
80 81 82 83 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 80 def plural_resource_class_name @plural_resource_class_name ||= singular_resource_class_name .pluralize end |
#plural_underscored_base_resource_name ⇒ Object
55 56 57 58 59 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 55 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
61 62 63 64 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 61 def singular_resource_base_class_name @singular_resource_base_class_name ||= plural_resource_base_class_name .singularize end |
#singular_resource_class_name ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 71 def singular_resource_class_name @singular_resource_class_name ||= [ name_components['modules'], base_resource_name, ] .compact .join('::') end |
#singular_underscored_base_resource_name ⇒ Object
49 50 51 52 53 |
# File 'lib/apple_core/action_controller/resource_naming.rb', line 49 def singular_underscored_base_resource_name @singular_underscored_base_resource_name ||= singular_resource_base_class_name .underscore .downcase end |