Sha256: 3830e6c403787ad96a5eb9882d2ba858fc702ced42af82c74d82b36e25e094de
Contents?: true
Size: 1.49 KB
Versions: 11
Compression:
Stored size: 1.49 KB
Contents
module SelectableAttrRails::Helpers class AbstractSelectionBuilder attr_reader :entry_hash def initialize(object, object_name, method, options, template) @object, @object_name, @method = object, object_name, method @base_name = @object.class.enum_base_name(method.to_s) @template = template @entry_hash = nil @options = options || {} @entry_hash_array = @options[:entry_hash_array] end def enum_hash_array_from_object base_name = @object.class.enum_base_name(@method.to_s) @object.send("#{base_name}_hash_array") end def enum_hash_array_from_class base_name = @object.class.enum_base_name(@method.to_s) @object.class.send("#{base_name}_hash_array") end def tag_id(tag) result = nil tag.scan(/ id\=\"(.*?)\"/){|s|result = s} return result end def add_class_name(options, class_name) (options ||= {}).stringify_keys! (options['class'] ||= '') << ' ' << class_name options end def camelize_keys(hash, first_letter = :lower) result = {} hash.each{|key, value|result[key.to_s.camelize(first_letter)] = value} result end def update_options(dest, *options_array) result = dest || {} options_array.each do |options| next unless options if class_name = options.delete(:class) add_class_name(result, class_name) end result.update(options) end result end end end
Version data entries
11 entries across 11 versions & 2 rubygems