start work on spec
This commit is contained in:
parent
34ec07e604
commit
b41516c13b
10
Gemfile
10
Gemfile
|
@ -2,3 +2,13 @@ source "http://rubygems.org"
|
||||||
|
|
||||||
# Specify your gem's dependencies in ruby-avm-library.gemspec
|
# Specify your gem's dependencies in ruby-avm-library.gemspec
|
||||||
gemspec
|
gemspec
|
||||||
|
|
||||||
|
group :test do
|
||||||
|
gem 'autotest'
|
||||||
|
end
|
||||||
|
|
||||||
|
group :mac do
|
||||||
|
gem 'autotest-fsevent'
|
||||||
|
gem 'autotest-growl'
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Autotest.add_discovery { "rspec2" }
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
module AVM
|
||||||
|
class Creator
|
||||||
|
def initialize
|
||||||
|
@options = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
def merge!(hash)
|
||||||
|
@options.merge!(hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
def method_missing(key, *opts)
|
||||||
|
if key.to_s[-1..-1] == '='
|
||||||
|
@options[key.to_s[0..-2].to_sym] = opts.first
|
||||||
|
else
|
||||||
|
@options[key]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
require 'avm/creator'
|
||||||
|
|
||||||
|
module AVM
|
||||||
|
class Image
|
||||||
|
attr_reader :creator
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
@creator = AVM::Creator.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -18,4 +18,7 @@ Gem::Specification.new do |s|
|
||||||
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
||||||
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
||||||
s.require_paths = ["lib"]
|
s.require_paths = ["lib"]
|
||||||
|
|
||||||
|
s.add_development_dependency 'rspec'
|
||||||
|
s.add_development_dependency 'mocha'
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
require 'avm/image'
|
||||||
|
require 'avm/creator'
|
||||||
|
|
||||||
|
describe AVM::Creator do
|
||||||
|
let(:image) { AVM::Image.new }
|
||||||
|
let(:creator) { image.creator }
|
||||||
|
|
||||||
|
let(:name) { 'Space Telescope Science Institute' }
|
||||||
|
let(:url) { 'http://www.stsci.edu/' }
|
||||||
|
let(:rights) { 'Public Domain' }
|
||||||
|
|
||||||
|
subject { creator }
|
||||||
|
|
||||||
|
def self.can_read_properties
|
||||||
|
its(:name) { should == name }
|
||||||
|
its(:url) { should == url }
|
||||||
|
its(:rights) { should == rights }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#merge!' do
|
||||||
|
before { creator.merge!(:name => name, :url => url, :rights => rights) }
|
||||||
|
|
||||||
|
can_read_properties
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'setters' do
|
||||||
|
before {
|
||||||
|
creator.name = name
|
||||||
|
creator.url = url
|
||||||
|
creator.rights = rights
|
||||||
|
}
|
||||||
|
|
||||||
|
can_read_properties
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
require 'avm/image'
|
||||||
|
|
||||||
|
describe AVM::Image do
|
||||||
|
let(:image) { self.class.describes.new }
|
||||||
|
|
||||||
|
subject { image }
|
||||||
|
|
||||||
|
describe '#initialize' do
|
||||||
|
it { should be_a_kind_of(AVM::Image) }
|
||||||
|
|
||||||
|
its(:creator) { should be_a_kind_of(AVM::Creator) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
RSpec.configure do |config|
|
||||||
|
config.mock_with :mocha
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue