Sha256: 3ebc4581091c5e8a8f0e9fe7435991b26f4b52d124ce27744f21196260b02711
Contents?: true
Size: 728 Bytes
Versions: 2
Compression:
Stored size: 728 Bytes
Contents
module ActionPresenter module ViewHelper extend ActiveSupport::Concern included do helper_method :present end def present(object, klass = nil) klass ||= presenter_name object object = object.last if object.is_a? Array presenter = klass.new(object, view_context) return yield presenter if block_given? presenter end private def presenter_name(scope) "#{klass_name(scope)}Presenter".constantize end def klass_name(scope) return scope.class.to_s unless scope.is_a? Array return scope.first.class.to_s if scope.length == 1 scope.map do |s| s.is_a?(Symbol) ? s.capitalize : s.class end.join('::') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
action_presenter-1.1.3 | lib/action_presenter/view_helper.rb |
action_presenter-1.1.2 | lib/action_presenter/view_helper.rb |