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

Version Path
akm-selectable_attr_rails-0.3.0 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
akm-selectable_attr_rails-0.3.1 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
akm-selectable_attr_rails-0.3.2 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
akm-selectable_attr_rails-0.3.3 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
akm-selectable_attr_rails-0.3.5 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
akm-selectable_attr_rails-0.3.7 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
selectable_attr_rails-0.3.11 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
selectable_attr_rails-0.3.10 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
selectable_attr_rails-0.3.9 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
selectable_attr_rails-0.3.8 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb
selectable_attr_rails-0.3.7 lib/selectable_attr_rails/helpers/abstract_selection_helper.rb