Sha256: 5ad4088e61d3a8e7899fd8e157ec45f1aa45f6dc8894dc6a34c61d11ad8dc335

Contents?: true

Size: 1.19 KB

Versions: 7

Compression:

Stored size: 1.19 KB

Contents

module Symbiont
	module DataSetter
		
		def using(data)
			data.each do |key, value|
				use_text_data_with(key, value) if text_settable_for(key) and object_enabled_for(key)
        use_check_data_with(key, value) if value_checkable_for(key) and object_enabled_for(key)
        use_select_data_with(key, value) if value_selectable_for(key) and object_enabled_for(key)
			end
		end

		alias :using_data :using
		alias :using_values :using
		alias :use_data :using
		alias :use_values :using
		
		private
		
		def use_text_data_with(key, value)
			self.send "#{key}=", value
		end
		
    def use_check_data_with(key, value)
      return self.send "check_#{key}" if value
      return self.send "uncheck_#{key}"
    end
    
    def use_select_data_with(key, value)
      return self.send "select_#{key}" if value
    end
    
    def text_settable_for(key)
      respond_to?("#{key}=".to_sym)
    end
    
    def value_checkable_for(key)
      respond_to?("check_#{key}".to_sym)
    end
    
    def value_selectable_for(key)
      respond_to?("select_#{key}".to_sym)
    end
    
    def object_enabled_for(key)
      self.send("#{key}_object").enabled?
    end
    
	end # module: DataSetter
end # module: Symbiont

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
symbiont-0.1.9 lib/symbiont/data_setter.rb
symbiont-0.1.8 lib/symbiont/data_setter.rb
symbiont-0.1.7 lib/symbiont/data_setter.rb
symbiont-0.1.6 lib/symbiont/data_setter.rb
symbiont-0.1.5 lib/symbiont/data_setter.rb
symbiont-0.1.4 lib/symbiont/data_setter.rb
symbiont-0.1.3 lib/symbiont/data_setter.rb