Sha256: c335bb403b8a2593c4ee307daf1b55d02f05a988c1a1121580189768daf7d8fb
Contents?: true
Size: 863 Bytes
Versions: 8
Compression:
Stored size: 863 Bytes
Contents
module ClassyEnum class SemanticFormBuilder < Formtastic::SemanticFormBuilder # :nodoc: all def enum_select_input(method, options) raise Error.invalid_classy_enum_object(method) unless object.respond_to? "#{method}_options" enum_options = object.send("#{method}_options") enum_class = enum_options[:enum].to_s.classify.constantize options[:collection] = enum_class.select_options options[:selected] = object.send(method).to_s options[:include_blank] = enum_options[:allow_blank] select_input(method, options) end end module Error # :nodoc: all def self.invalid_classy_enum_object(method) raise "#{method} is not a ClassyEnum object. Make sure you've added 'classy_enum_attr :#{method}' to your model" end end end Formtastic::SemanticFormHelper.builder = ClassyEnum::SemanticFormBuilder
Version data entries
8 entries across 8 versions & 1 rubygems