Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View awesome_resource_spec.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
module AwesomeResource
attr_reader :awesome_attributes
 
def initialize(attributes={})
@awesome_attributes = Struct.new(*attributes.keys.map(&:to_sym)).new *attributes.values
end
 
def method_missing(method_name, *args)
if args.any?
awesome_attributes.send(method_name, args.first)
else
awesome_attributes.send(method_name)
end
end
 
end
 
describe AwesomeResource do
it "creates readers and writers for any attributes passed in during initialization" do
article_class = Class.new do
include AwesomeResource
end
article = article_class.new("title" => "Fun")
article.title.should == "Fun"
article.title = 'Fun Times!'
article.title.should == 'Fun Times!'
expect { article.unknown_attribute }.to raise_exception
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.