Class: Scaffolding::ClassNamesTransformer
- Inherits:
-
Object
- Object
- Scaffolding::ClassNamesTransformer
- Defined in:
- lib/scaffolding/class_names_transformer.rb
Instance Attribute Summary collapse
-
#child ⇒ Object
Returns the value of attribute child.
-
#namespace ⇒ Object
Returns the value of attribute namespace.
-
#parent ⇒ Object
Returns the value of attribute parent.
Instance Method Summary collapse
- #all_parts_in_context ⇒ Object
- #belongs_to_needs_class_definition? ⇒ Boolean
- #class_name_in_parent_context ⇒ Object
- #in_namespace_class_name ⇒ Object
-
#initialize(child, parent, namespace = "account") ⇒ ClassNamesTransformer
constructor
A new instance of ClassNamesTransformer.
- #namespace_parts ⇒ Object
- #parent_class_name_in_context ⇒ Object
- #parent_in_namespace_class_name ⇒ Object
- #parent_namespace_parts ⇒ Object
- #parent_parts ⇒ Object
- #parent_parts_in_context ⇒ Object
- #parent_table_name ⇒ Object
- #parent_variable_name_in_context ⇒ Object
- #parts ⇒ Object
- #parts_in_context ⇒ Object
- #replacement_for(string) ⇒ Object
- #table_name ⇒ Object
Constructor Details
#initialize(child, parent, namespace = "account") ⇒ ClassNamesTransformer
Returns a new instance of ClassNamesTransformer.
4 5 6 7 8 |
# File 'lib/scaffolding/class_names_transformer.rb', line 4 def initialize(child, parent, namespace = "account") self.child = child self.parent = parent self.namespace = namespace end |
Instance Attribute Details
#child ⇒ Object
Returns the value of attribute child.
2 3 4 |
# File 'lib/scaffolding/class_names_transformer.rb', line 2 def child @child end |
#namespace ⇒ Object
Returns the value of attribute namespace.
2 3 4 |
# File 'lib/scaffolding/class_names_transformer.rb', line 2 def namespace @namespace end |
#parent ⇒ Object
Returns the value of attribute parent.
2 3 4 |
# File 'lib/scaffolding/class_names_transformer.rb', line 2 def parent @parent end |
Instance Method Details
#all_parts_in_context ⇒ Object
[View source]
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/scaffolding/class_names_transformer.rb', line 40 def all_parts_in_context working_parts = parts working_parent_parts = parent_parts # e.g. Webhooks::Incoming::Event vs. Webhooks::Incoming::Delivery while working_parts.first == working_parent_parts.first # get rid of 'Webhooks::' and 'Incoming::' working_parts.shift working_parent_parts.shift end # e.g. Conversation vs. Conversations::Subscription while working_parts.first == working_parent_parts.first.pluralize # get rid of 'Conversations::' working_parts.shift end [working_parts, working_parent_parts] end |
#belongs_to_needs_class_definition? ⇒ Boolean
10 11 12 13 14 |
# File 'lib/scaffolding/class_names_transformer.rb', line 10 def belongs_to_needs_class_definition? return false if parent_namespace_parts.empty? return false if parent_namespace_parts == namespace_parts namespace_parts.first(parent_namespace_parts.count) != parent_namespace_parts end |
#class_name_in_parent_context ⇒ Object
[View source]
68 69 70 |
# File 'lib/scaffolding/class_names_transformer.rb', line 68 def class_name_in_parent_context parts_in_context.join("::") end |
#in_namespace_class_name ⇒ Object
[View source]
36 37 38 |
# File 'lib/scaffolding/class_names_transformer.rb', line 36 def in_namespace_class_name parts.last end |
#namespace_parts ⇒ Object
[View source]
16 17 18 |
# File 'lib/scaffolding/class_names_transformer.rb', line 16 def namespace_parts parts[0..-2] end |
#parent_class_name_in_context ⇒ Object
[View source]
72 73 74 |
# File 'lib/scaffolding/class_names_transformer.rb', line 72 def parent_class_name_in_context parent_parts_in_context.join("::") end |
#parent_in_namespace_class_name ⇒ Object
[View source]
32 33 34 |
# File 'lib/scaffolding/class_names_transformer.rb', line 32 def parent_in_namespace_class_name parent_parts.last end |
#parent_namespace_parts ⇒ Object
[View source]
20 21 22 |
# File 'lib/scaffolding/class_names_transformer.rb', line 20 def parent_namespace_parts parent_parts[0..-2] end |
#parent_parts ⇒ Object
[View source]
28 29 30 |
# File 'lib/scaffolding/class_names_transformer.rb', line 28 def parent_parts parent.empty? ? [""] : parent.split("::") end |
#parent_parts_in_context ⇒ Object
[View source]
64 65 66 |
# File 'lib/scaffolding/class_names_transformer.rb', line 64 def parent_parts_in_context all_parts_in_context.last end |
#parent_table_name ⇒ Object
[View source]
80 81 82 |
# File 'lib/scaffolding/class_names_transformer.rb', line 80 def parent_table_name parent.underscore.tr("/", "_").pluralize end |
#parent_variable_name_in_context ⇒ Object
[View source]
76 77 78 |
# File 'lib/scaffolding/class_names_transformer.rb', line 76 def parent_variable_name_in_context parent_parts_in_context.join("::").underscore.tr("/", "_") end |
#parts ⇒ Object
[View source]
24 25 26 |
# File 'lib/scaffolding/class_names_transformer.rb', line 24 def parts child.split("::") end |
#parts_in_context ⇒ Object
[View source]
60 61 62 |
# File 'lib/scaffolding/class_names_transformer.rb', line 60 def parts_in_context all_parts_in_context.first end |
#replacement_for(string) ⇒ Object
[View source]
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 |
# File 'lib/scaffolding/class_names_transformer.rb', line 88 def replacement_for(string) case string when "Scaffolding::AbsolutelyAbstract::CreativeConcepts" parent.pluralize when "Scaffolding::CompletelyConcrete::TangibleThings" child.pluralize when "ScaffoldingAbsolutelyAbstractCreativeConcepts" parent.pluralize.gsub("::", "") when "ScaffoldingCompletelyConcreteTangibleThings" child.pluralize.gsub("::", "") when "Scaffolding Absolutely Abstract Creative Concepts" parent.pluralize.titlecase.tr("/", " ") when "Scaffolding Completely Concrete Tangible Things" child.pluralize.titlecase.tr("/", " ") # This is a specific example for locales where we only leave tangible_things. when "scaffolding.completely_concrete.tangible_things" child.underscore.pluralize when "Scaffolding/Absolutely Abstract/Creative Concepts" parent.pluralize.titlecase when "Scaffolding/Completely Concrete/Tangible Things" child.pluralize.titlecase when "scaffolding/absolutely_abstract/creative_concepts" parent.underscore.pluralize when "scaffolding/completely_concrete/tangible_things" child.underscore.pluralize when "scaffolding/completely_concrete/_tangible_things" parts = child.underscore.split("/") parts.push "_#{parts.pop}" parts.join("/").pluralize when "scaffolding_absolutely_abstract_creative_concepts" parent.underscore.tr("/", "_").pluralize when "scaffolding_completely_concrete_tangible_things" child.underscore.tr("/", "_").pluralize when "scaffolding-absolutely-abstract-creative-concepts" parent.underscore.gsub(/[\/_]/, "-").pluralize when "scaffolding-completely-concrete-tangible-things" child.underscore.gsub(/[\/_]/, "-").pluralize when "Scaffolding::AbsolutelyAbstract::CreativeConcept" parent when "Scaffolding::CompletelyConcrete::TangibleThing" child when "ScaffoldingAbsolutelyAbstractCreativeConcept" parent.gsub("::", "") when "ScaffoldingCompletelyConcreteTangibleThing" child.gsub("::", "") when "Scaffolding Absolutely Abstract Creative Concept" parent.titlecase.tr("/", " ") when "Scaffolding Completely Concrete Tangible Thing" child.titlecase.tr("/", " ") when "Scaffolding/Absolutely Abstract/Creative Concept" parent.titlecase when "Scaffolding/Completely Concrete/Tangible Thing" child.titlecase when "scaffolding/absolutely_abstract/creative_concept" parent.underscore when "scaffolding/completely_concrete/tangible_thing" child.underscore when "scaffolding_absolutely_abstract_creative_concept" parent.underscore.tr("/", "_") when "scaffolding_completely_concrete_tangible_thing" child.underscore.tr("/", "_") when "scaffolding-absolutely-abstract-creative-concept" parent.underscore.gsub(/[\/_]/, "-") when "scaffolding-completely-concrete-tangible-thing" child.underscore.gsub(/[\/_]/, "-") when "absolutely_abstract_creative_concepts" parent_class_name_in_context.underscore.tr("/", "_").pluralize when "completely_concrete_tangible_things" class_name_in_parent_context.underscore.tr("/", "_").pluralize when "absolutely_abstract/creative_concepts" parent_class_name_in_context.underscore.pluralize when "completely_concrete/tangible_things" class_name_in_parent_context.underscore.pluralize when "absolutely-abstract-creative-concepts" parent.underscore.gsub(/[\/_]/, "-").pluralize when "completely-concrete-tangible-things" child.underscore.gsub(/[\/_]/, "-").pluralize when "absolutely_abstract_creative_concept" parent_class_name_in_context.underscore.tr("/", "_") when "completely_concrete_tangible_thing" class_name_in_parent_context.underscore.tr("/", "_") when "absolutely_abstract/creative_concept" parent_class_name_in_context.underscore when "completely_concrete/tangible_thing" class_name_in_parent_context.underscore when "absolutely-abstract-creative-concept" parent.underscore.gsub(/[\/_]/, "-") when "completely-concrete-tangible-thing" child.underscore.gsub(/[\/_]/, "-") when "creative_concepts" parent_in_namespace_class_name.underscore.pluralize when "tangible_things" in_namespace_class_name.underscore.pluralize when "Creative Concepts" parent_in_namespace_class_name.titlecase.pluralize when "Tangible Things" in_namespace_class_name.titlecase.pluralize when "Creative concepts" parent_in_namespace_class_name.titlecase.downcase.capitalize.pluralize when "Tangible things" in_namespace_class_name.titlecase.downcase.capitalize.pluralize when "creative concepts" parent_in_namespace_class_name.titlecase.downcase.pluralize when "tangible things" in_namespace_class_name.titlecase.downcase.pluralize when "creative-concepts" parent_in_namespace_class_name.underscore.gsub(/[\/_]/, "-").pluralize when "tangible-things" in_namespace_class_name.underscore.gsub(/[\/_]/, "-").pluralize when "creative_concept" parent_in_namespace_class_name.underscore when "tangible_thing" in_namespace_class_name.underscore when "Creative Concept" parent_in_namespace_class_name.titlecase when "Tangible Thing" in_namespace_class_name.titlecase when "Creative concept" parent_in_namespace_class_name.titlecase.downcase.capitalize when "Tangible thing" in_namespace_class_name.titlecase.downcase.capitalize when "creative concept" parent_in_namespace_class_name.titlecase.downcase when "tangible thing" in_namespace_class_name.titlecase.downcase when "creative-concept" parent_in_namespace_class_name.underscore.gsub(/[\/_]/, "-") when "tangible-thing" in_namespace_class_name.underscore.gsub(/[\/_]/, "-") when ":account" ":#{namespace}" when "/account/" "/#{namespace}/" else "🛑" end end |
#table_name ⇒ Object
[View source]
84 85 86 |
# File 'lib/scaffolding/class_names_transformer.rb', line 84 def table_name child.underscore.tr("/", "_").pluralize end |