module Finix module HalResource attr_accessor :hyperlinks attr_accessor :attributes def method_missing(method, *args, &block) if @attributes.has_key?(method.to_s) return @attributes[method.to_s] end case method.to_s when /(.+)=$/ attr = method.to_s.chop @attributes[attr] = args[0] else if @hyperlinks.has_key? "#{method}" value = @hyperlinks["#{method}"] result = value.call return result end end end if RUBY_VERSION < '1.9' def respond_to?(method_name, include_private=false) does_resource_respond_to?(method_name) || super end else def respond_to_missing?(method_name, include_private=false) does_resource_respond_to?(method_name) || super end end def does_resource_respond_to?(method_name) @attributes.has_key?(method_name.to_s) or @hyperlinks.has_key?(method_name.to_s) end end end