Module: Bemonrails::BemNames
- Included in:
- Bem, BemRenderHelper
- Defined in:
- lib/bem-on-rails/build/bem_names.rb
Instance Method Summary collapse
-
#build_b(b = ) ⇒ Object
Build block name.
- #build_def(ess) ⇒ Object
-
#build_e(b = , e = ) ⇒ Object
Build element name.
- #build_m(b = , e = , m = , v = ) ⇒ Object
- #generate_klass(builder = options) ⇒ Object
-
#path_e(b = , e = ) ⇒ Object
Build block path.
- #path_l(path, level = ) ⇒ Object
- #path_m(essence, m = ) ⇒ Object
-
#path_resolve(essence, builder = options, include_level = true) ⇒ Object
Resolve directories.
- #resolve_essence ⇒ Object
- #template_exists?(file) ⇒ Boolean
Instance Method Details
#build_b(b = ) ⇒ Object
Build block name
81 82 83 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 81 def build_b(b=[:block]) BEM[:blocks][:prefix] + b end |
#build_def(ess) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 65 def build_def(ess) case ess when :block build_b when :element build_e when :mod build_m([:block], [:element], [:mod], [:value]) end end |
#build_e(b = , e = ) ⇒ Object
Build element name
91 92 93 94 95 96 97 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 91 def build_e(b=[:block], e=[:element]) if b b + BEM[:elements][:prefix] + e else BEM[:elements][:prefix] + e end end |
#build_m(b = , e = , m = , v = ) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 108 def build_m(b=[:block], e=[:element], m=[:mod], v=[:value]) name = build_b(b) name = build_e(b, e) if e name = name + BEM[:mods][:prefix] + m name = name + BEM[:mods][:postfix] + v if v name end |
#generate_klass(builder = options) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 30 def generate_klass(builder=) names = {} # Generate names for block, his mods and they values if builder[:block] names[:klass] = build_b(builder[:block]) # If block have mods names[:klass] = build_m(builder[:block], nil, builder[:mod], builder[:value]) if builder[:mod] end # Generate names for elements, they mods and they values if builder[:element] names[:klass] = build_e(builder[:block], builder[:element]) # If element have mods names[:klass] = build_m(builder[:block], builder[:element], builder[:mod], builder[:value]) if builder[:mod] end names end |
#path_e(b = , e = ) ⇒ Object
Build block path
86 87 88 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 86 def path_e(b=[:block], e=[:element]) File.join build_b(b), BEM[:elements][:dir], BEM[:elements][:prefix] + e end |
#path_l(path, level = ) ⇒ Object
76 77 78 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 76 def path_l(path, level=[:level]) File.join Rails.root.join(BEM[:root], level, path) end |
#path_m(essence, m = ) ⇒ Object
99 100 101 102 103 104 105 106 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 99 def path_m(essence, m=[:mod]) case essence when :element File.join path_e, build_e, BEM[:mods][:dir], BEM[:mods][:prefix] + m else File.join build_b, BEM[:mods][:dir], BEM[:mods][:prefix] + m end end |
#path_resolve(essence, builder = options, include_level = true) ⇒ Object
Resolve directories
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 5 def path_resolve(essence, builder=, include_level=true) current_level = builder[:level] ? builder[:level] : BEM[:level] path = include_level ? [current_level] : [] case essence when :mod # This is for mods with value if builder[:block] && builder[:element] path.push path_m(:element) elsif builder[:block] path.push path_m(:block) else raise ("Mods must be for block or element.", 'red') end when :element path.push path_e(builder[:block], builder[:element]) when :block path.push build_b(builder[:block]) else raise ("Unknown params. Try 'thor help bem:create'", 'red') end File.join path.compact end |
#resolve_essence ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 52 def resolve_essence essence = :block if [:element] essence = :element if [:mod] essence = :mod end end essence end |
#template_exists?(file) ⇒ Boolean
116 117 118 119 120 |
# File 'lib/bem-on-rails/build/bem_names.rb', line 116 def template_exists?(file) BEM[:techs].each do |tech, ext| return true if File.exists? file + ext end end |