Module: Mystique

Defined in:
lib/mystique.rb,
lib/mystique/version.rb,
lib/mystique/presenter.rb,
lib/mystique/undefined.rb,
lib/mystique/null_context.rb,
lib/mystique/presenter_class.rb

Defined Under Namespace

Modules: NullContext Classes: Presenter, PresenterClass, Undefined

Constant Summary collapse

VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.present(object, with: nil, context: nil, &block) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/mystique.rb', line 11

def self.present(object, with: nil, context: nil, &block)
  begin
    presenter_class = PresenterClass.new(object, with).to_class
    presenter_class.for(object, context, &block)
  rescue NameError
    return object
  end
end

.present_collection(collection, context: nil, with: nil, &block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/mystique.rb', line 20

def self.present_collection(collection, context: nil, with: nil, &block)
  return to_enum(:present_collection, collection, context: context, with: with, &block) unless block_given?

  collection.each do |element|
    case block.arity
    when 2
      block.call( present(element, context: context, with: with), element )
    else
      block.call(present(element, context: context, with: with))
    end
  end
end