Class: Bemer::Mixes
- Inherits:
-
Object
- Object
- Bemer::Mixes
- Defined in:
- lib/bemer/mixes.rb
Instance Method Summary collapse
-
#entities ⇒ Object
rubocop:disable Metrics/MethodLength.
-
#initialize(*mixes) ⇒ Mixes
constructor
A new instance of Mixes.
- #to_a ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(*mixes) ⇒ Mixes
Returns a new instance of Mixes.
9 10 11 |
# File 'lib/bemer/mixes.rb', line 9 def initialize(*mixes) @mixes = Array.wrap(mixes).flatten end |
Instance Method Details
#entities ⇒ Object
rubocop:disable Metrics/MethodLength
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/bemer/mixes.rb', line 21 def entities # rubocop:disable Metrics/MethodLength @entities ||= mixes.flat_map do |mix| if mix.is_a?(Hash) = mix.extract!(:js, :mods) mix.flat_map do |block, elems| if elems.nil? EntityBuilder.new(block, **, bem: true) else Array(elems).map { |elem| EntityBuilder.new(block, elem, **, bem: true) } end end else Array(mix).flat_map { |block| EntityBuilder.new(block) } end end end |
#to_a ⇒ Object
13 14 15 |
# File 'lib/bemer/mixes.rb', line 13 def to_a @to_a ||= entities.map { |e| [e.bem_class, e.mods] }.flatten.reject(&:blank?).uniq end |
#to_s ⇒ Object
17 18 19 |
# File 'lib/bemer/mixes.rb', line 17 def to_s @to_s ||= to_a.join(' ') end |