lib/assertion/dsl/attribute.rb in assertion-0.2.3 vs lib/assertion/dsl/attribute.rb in assertion-0.2.4
- old
+ new
@@ -23,16 +23,29 @@
def attribute(name)
__check_attribute__(name)
alias_method name, :object
end
- # @private
+ private
+
+ # Ensures the `#object` is defined
+ #
+ # @param [Class] klass
+ #
+ # @return [undefined]
+ #
def self.extended(klass)
klass.__send__ :attr_reader, :object
end
- private
-
+ # Checks if alias name for `#object` is free
+ #
+ # @param [#to_sym] key
+ #
+ # @return [undefined]
+ #
+ # @raise [NameError] if the key is already in use
+ #
def __check_attribute__(key)
return unless (instance_methods << :state).include? key.to_sym
fail NameError.new "#{self}##{key} is already defined"
end