module Compass::Configuration::Inheritance::InstanceMethods
Public Instance Methods
any_attributes_set?()
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 223 def any_attributes_set? @set_attributes && @set_attributes.size > 0 end
chain()
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 281 def chain instances = [self] instances << instances.last.inherited_data while instances.last.inherited_data instances end
debug()
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 287 def debug normalized_attrs = {} (ATTRIBUTES + ARRAY_ATTRIBUTES).each do |prop| values = [] chain.each do |instance| values << { :raw => (instance.send("raw_#{prop}") rescue nil), :value => (instance.send("#{prop}_without_default") rescue nil), :default => (instance.send("default_#{prop}") rescue nil), :resolved => instance.send(prop) } end normalized_attrs[prop] = values end normalized_attrs end
default_for(attribute)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 227 def default_for(attribute) method = "default_#{attribute}".to_sym if respond_to?(method) send(method) end end
inherit_from!(data)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 192 def inherit_from!(data) if self.inherited_data self.inherited_data.inherit_from!(data) else self.inherited_data = data end self end
method_missing(meth, *args, &block)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 263 def method_missing(meth, *args, &block) if inherited_data inherited_data.send(meth, *args, &block) else raise NoMethodError, meth.to_s end end
on_top!()
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 180 def on_top! self.set_top_level(self) end
raw(attribute)
click to toggle source
Reads the raw value that was set on this object. you generally should call raw_<attribute>() instead.
# File lib/compass/configuration/inheritance.rb, line 249 def raw(attribute) instance_variable_get("@#{attribute}") end
read(attribute)
click to toggle source
Read a value that is either inherited or set on this instance, if we get to the bottom-most configuration instance, we ask for the default starting at the top level.
# File lib/compass/configuration/inheritance.rb, line 255 def read(attribute) if !(v = send("#{attribute}_without_default")).nil? v else top_level.default_for(attribute) end end
read_without_default(attribute)
click to toggle source
Read an explicitly set value that is either inherited or set on this instance
# File lib/compass/configuration/inheritance.rb, line 235 def read_without_default(attribute) if set?(attribute) send("raw_#{attribute}") elsif inherited_data.nil? nil elsif inherited_data.respond_to?("#{attribute}_without_default") inherited_data.send("#{attribute}_without_default") elsif inherited_data.respond_to?(attribute) inherited_data.send(attribute) end end
reset_inheritance!()
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 201 def reset_inheritance! self.inherited_data = nil end
respond_to?(meth)
click to toggle source
Calls superclass method
# File lib/compass/configuration/inheritance.rb, line 271 def respond_to?(meth) if super true elsif inherited_data inherited_data.respond_to?(meth) else false end end
set?(attribute)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 218 def set?(attribute) @set_attributes ||= {} @set_attributes[attribute] end
set_top_level(new_top)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 184 def set_top_level(new_top) self.top_level = new_top if self.inherited_data.respond_to?(:set_top_level) self.inherited_data.set_top_level(new_top) end end
unset!(attribute)
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 211 def unset!(attribute) @set_attributes ||= {} send("#{attribute}=", nil) @set_attributes.delete(attribute) nil end
with_defaults(data) { || ... }
click to toggle source
# File lib/compass/configuration/inheritance.rb, line 205 def with_defaults(data) inherit_from!(data) yield reset_inheritance! end