spec/excise/base_spec.rb in excise-0.1.1 vs spec/excise/base_spec.rb in excise-0.2.0
- old
+ new
@@ -1,16 +1,37 @@
require "spec_helper"
module Excise
describe "Base" do
- context 'patterned string' do
- subject { Base.new(string, pattern).parse }
+ context 'only a pattern' do
+ let(:base) { Base.new(pattern) }
+ let(:pattern) { '[{first}]' }
+ it "should parse strings" do
+ base.string = '[value]'
+ base.parse.should be_a Hash
+ end
+ end
+
+ context 'pattern and string' do
+ subject { Base.new(pattern, string).parse }
+
let(:string) { '[this] (patterned) <STRING>' }
let(:pattern) { '[{first}] ({second}) <{third}>' }
it { should be_a Hash }
its(:keys) { should eq [:first, :second, :third] }
its(:values) { should eq ['this', 'patterned', 'STRING'] }
+ end
+
+ describe '#parse_string' do
+ let(:pattern) { Base.new('[{first}]') }
+ it "should take a string and parse it" do
+ output = pattern.parse_string('[value]')
+ output.should eq Hash[{first: 'value'}]
+
+ output = pattern.parse_string('[other]')
+ output.should eq Hash[{first: 'other'}]
+ end
end
end
end