Sha256: 689674fa02f59b88c3bea2b7b3b6abb824c88bc334391459b161b4f83990c496
Contents?: true
Size: 924 Bytes
Versions: 1
Compression:
Stored size: 924 Bytes
Contents
require "mystique/version" require "callable" require "mystique/undefined" require "mystique/presenter" module Mystique def self.present(object, with: nil, context: nil, &block) begin presenter_class = presenter_class_for(object, with) presenter_class.for(object, context, &block) rescue NameError return object end end 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 private def self.presenter_class_for(object, with) with || Object.send(:const_get, "#{object.class}Presenter") end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mystique-0.10.2 | lib/mystique.rb |