Sha256: 4350d48fdde658974bc04fc5c7167218819b26a220aaf5bfa5dfcffeb2a20fc0
Contents?: true
Size: 1.25 KB
Versions: 12
Compression:
Stored size: 1.25 KB
Contents
require "active_support/concern" module BitPlayer module ContentProviders # Presentation logic for a "new" or "edit" view on a data model. module FormViewProvider extend ActiveSupport::Concern included do def self.data_class(klass) @source_class = klass end def self.source_class @source_class || fail("Classes inheriting from #{ self } must define a source classwith `data_class <class>`") end def self.show_nav_link @show_nav_link = true end def self.hide_nav_link @show_nav_link = false end def self.show_nav_link? @show_nav_link end def self.view_type(type) unless ["new", "edit"].include?(type) fail("view type must be one of 'new', 'edit'") end @view_type = type end def self.get_view_type @view_type end end def show_nav_link? self.class.show_nav_link? end def template "#{ plural_name }/#{ self.class.get_view_type }" end private def plural_name self.class.source_class.to_s.underscore.pluralize end end end end
Version data entries
12 entries across 12 versions & 1 rubygems