Module: Hc::Presenter
- Defined in:
- lib/hc/presenter.rb,
lib/hc/presenter/base.rb,
lib/hc/presenter/version.rb,
lib/hc/presenter/helper_methods.rb
Defined Under Namespace
Modules: HelperMethods Classes: Base
Constant Summary collapse
- VERSION =
"0.1.2"
Class Method Summary collapse
Class Method Details
.present(object, klass: nil, controller_context: nil, method: nil, options: {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/hc/presenter.rb', line 8 def self.present(object, klass: nil, controller_context: nil, method: nil, options: {}) if object.nil? return object elsif object.is_a?(DateTime) || object.is_a?(Time) return object.to_formatted_s(:iso8601) elsif object.respond_to?(:count) content = object.collect{ |o| present(o, klass: klass, controller_context: controller_context, method: method, options: ) } return content else klass ||= "#{object.class}Presenter".constantize presenter_object = klass.new(object: object, controller_context: controller_context, options: ) if !method.nil? && presenter_object.respond_to?(method) presenter_object.send(method) else presenter_object.send(:format) end end end |