Skip to content

Commit b548f8b

Browse files
committed
Finish 1.1.3.
Update the reader spec to require @reader_input and @reader_count to allow testing against Enumberable expectations. Read using @reader_input, and expect it to be valid and yield @reader_count statements.
2 parents eda1ea7 + d987103 commit b548f8b

File tree

7 files changed

+102
-65
lines changed

7 files changed

+102
-65
lines changed

.gemspec

Lines changed: 0 additions & 34 deletions
This file was deleted.

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "http://rubygems.org"
22

3-
gemspec :name => ""
3+
gemspec
44

55
gem "rdf", :git => "git://github.com/ruby-rdf/rdf.git", :branch => "develop"
66

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# RSpec Extensions for RDF.rb
22

3-
This is an [RDF.rb][] plugin that provides RDF-specific [RSpec][] matchers
3+
This is an [RDF.rb][] extension that provides RDF-specific [RSpec][] matchers
44
and shared examples for Ruby projects that use RDF.rb and RSpec.
55

66
* <http://github.com/ruby-rdf/rdf-spec>

Rakefile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
#!/usr/bin/env ruby
22
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'lib')))
33
require 'rubygems'
4-
begin
5-
require 'rakefile' # @see http://github.com/bendiken/rakefile
6-
rescue LoadError => e
7-
end
8-
94
require 'rdf/spec'
105

11-
desc "Build the rdf-spec-#{File.read('VERSION').chomp}.gem file"
12-
task :build do
13-
sh "gem build .gemspec"
6+
namespace :gem do
7+
desc "Build the rdf-spec-#{File.read('VERSION').chomp}.gem file"
8+
task :build do
9+
sh "gem build rdf-spec.gemspec && mv rdf-spec-#{File.read('VERSION').chomp}.gem pkg/"
10+
end
11+
12+
desc "Release the rdf-spec-#{File.read('VERSION').chomp}.gem file"
13+
task :release do
14+
sh "gem push pkg/rdf-spec-#{File.read('VERSION').chomp}.gem"
15+
end
1416
end
1517

1618
desc "Build etc files"

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.0
1+
1.1.3

lib/rdf/spec/reader.rb

Lines changed: 55 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ module RDF_Reader
66

77
before(:each) do
88
raise '+@reader+ must be defined in a before(:each) block' unless instance_variable_get('@reader')
9+
raise '+@reader_input+ must be defined in a before(:each) block' unless instance_variable_get('@reader_input')
10+
raise '+@reader_count+ must be defined in a before(:each) block' unless instance_variable_get('@reader_count')
911
@reader_class = @reader.class
1012
end
1113

@@ -20,12 +22,11 @@ module RDF_Reader
2022

2123
describe ".open" do
2224
before(:each) do
23-
RDF::Util::File.stub(:open_file).and_yield(StringIO.new("foo"))
25+
RDF::Util::File.stub(:open_file).and_yield(StringIO.new(@reader_input))
2426
end
2527

2628
it "yields reader given file_name" do
2729
@reader_class.format.each do |f|
28-
RDF::Util::File.stub(:open_file).and_yield(StringIO.new("foo"))
2930
f.file_extensions.each_pair do |sym, content_type|
3031
reader_mock = double("reader")
3132
expect(reader_mock).to receive(:got_here)
@@ -40,7 +41,6 @@ module RDF_Reader
4041

4142
it "yields reader given symbol" do
4243
@reader_class.format.each do |f|
43-
RDF::Util::File.stub(:open_file).and_yield(StringIO.new("foo"))
4444
sym = f.to_sym # Like RDF::NTriples::Format => :ntriples
4545
reader_mock = double("reader")
4646
expect(reader_mock).to receive(:got_here)
@@ -54,7 +54,6 @@ module RDF_Reader
5454

5555
it "yields reader given {:file_name => file_name}" do
5656
@reader_class.format.each do |f|
57-
RDF::Util::File.stub(:open_file).and_yield(StringIO.new("foo"))
5857
f.file_extensions.each_pair do |sym, content_type|
5958
reader_mock = double("reader")
6059
expect(reader_mock).to receive(:got_here)
@@ -69,7 +68,6 @@ module RDF_Reader
6968

7069
it "yields reader given {:content_type => 'a/b'}" do
7170
@reader_class.format.each do |f|
72-
RDF::Util::File.stub(:open_file).and_yield(StringIO.new("foo"))
7371
f.content_types.each_pair do |content_type, formats|
7472
reader_mock = double("reader")
7573
expect(reader_mock).to receive(:got_here)
@@ -94,37 +92,32 @@ module RDF_Reader
9492
it "sets @input to StringIO given a string" do
9593
reader_mock = double("reader")
9694
expect(reader_mock).to receive(:got_here)
97-
@reader_class.new("string") do |r|
95+
@reader_class.new(@reader_input) do |r|
9896
reader_mock.got_here
9997
expect(r.instance_variable_get(:@input)).to be_a(StringIO)
10098
end
10199
end
102-
100+
103101
it "sets @input to input given something other than a string" do
104102
reader_mock = double("reader")
105103
expect(reader_mock).to receive(:got_here)
106-
file = StringIO.new("")
104+
file = StringIO.new(@reader_input)
107105
@reader_class.new(file) do |r|
108106
reader_mock.got_here
109107
expect(r.instance_variable_get(:@input)).to eq file
110108
end
111109
end
112-
110+
113111
it "sets validate given :validate => true" do
114-
# Either set validate, or through error, due to invalid input (null input may be invalid)
115-
begin
116-
@reader_class.new("string", :validate => true) do |r|
117-
expect(r).to be_valid
118-
end
119-
rescue
120-
expect($!).to be_a(RDF::ReaderError) # An error is acceptable
112+
@reader_class.new(@reader_input, :validate => true) do |r|
113+
expect(r).to be_valid
121114
end
122115
end
123116

124117
it "sets canonicalize given :canonicalize => true" do
125118
reader_mock = double("reader")
126119
expect(reader_mock).to receive(:got_here)
127-
@reader_class.new("string", :canonicalize => true) do |r|
120+
@reader_class.new(@reader_input, :canonicalize => true) do |r|
128121
reader_mock.got_here
129122
expect(r).to be_canonicalize
130123
end
@@ -133,7 +126,7 @@ module RDF_Reader
133126
it "sets intern given :intern => true" do
134127
reader_mock = double("reader")
135128
expect(reader_mock).to receive(:got_here)
136-
@reader_class.new("string", :intern => true) do |r|
129+
@reader_class.new(@reader_input, :intern => true) do |r|
137130
reader_mock.got_here
138131
expect(r).to be_intern
139132
end
@@ -142,7 +135,7 @@ module RDF_Reader
142135
it "sets prefixes given :prefixes => {}" do
143136
reader_mock = double("reader")
144137
expect(reader_mock).to receive(:got_here)
145-
@reader_class.new("string", :prefixes => {:a => "b"}) do |r|
138+
@reader_class.new(@reader_input, :prefixes => {:a => "b"}) do |r|
146139
reader_mock.got_here
147140
expect(r.prefixes).to eq({:a => "b"})
148141
end
@@ -168,5 +161,48 @@ module RDF_Reader
168161
end
169162
end
170163
end
164+
165+
context RDF::Enumerable do
166+
it "#count" do
167+
@reader_class.new(@reader_input) {|r| expect(r.count).to eq @reader_count}
168+
end
169+
it "#empty?" do
170+
@reader_class.new(@reader_input) {|r| expect(r).not_to be_empty}
171+
end
172+
173+
it "#statements" do
174+
@reader_class.new(@reader_input) {|r| expect(r.statements.count).to eq @reader_count}
175+
end
176+
it "#has_statement?" do
177+
@reader_class.new(@reader_input) {|r| expect(r).to respond_to(:has_statement?)}
178+
end
179+
it "#each_statement" do
180+
@reader_class.new(@reader_input) {|r| expect(r.each_statement.count).to eq @reader_count}
181+
end
182+
it "#enum_statement" do
183+
@reader_class.new(@reader_input) {|r| expect(r.enum_statement.count).to eq @reader_count}
184+
end
185+
186+
it "#triples" do
187+
@reader_class.new(@reader_input) {|r| expect(r.triples.count).to eq @reader_count}
188+
end
189+
it "#each_triple" do
190+
@reader_class.new(@reader_input) {|r| expect(r.each_triple.count).to eq @reader_count}
191+
end
192+
it "#enum_triple" do
193+
@reader_class.new(@reader_input) {|r| expect(r.enum_triple.count).to eq @reader_count}
194+
end
195+
196+
it "#quads" do
197+
@reader_class.new(@reader_input) {|r| expect(r.quads.count).to eq @reader_count}
198+
end
199+
it "#each_quad" do
200+
@reader_class.new(@reader_input) {|r| expect(r.each_quad.count).to eq @reader_count}
201+
end
202+
it "#enum_quad" do
203+
@reader_class.new(@reader_input) {|r| expect(r.enum_quad.count).to eq @reader_count}
204+
end
205+
206+
end
171207
end
172208
end

rdf-spec.gemspec

Lines changed: 0 additions & 1 deletion
This file was deleted.

rdf-spec.gemspec

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/env ruby -rubygems
2+
# -*- encoding: utf-8 -*-
3+
4+
Gem::Specification.new do |gem|
5+
gem.version = File.read('VERSION').chomp
6+
gem.date = File.mtime('VERSION').strftime('%Y-%m-%d')
7+
8+
gem.name = 'rdf-spec'
9+
gem.homepage = 'http://ruby-rdf.github.com/rdf-spec/'
10+
gem.license = 'Public Domain' if gem.respond_to?(:license=)
11+
gem.summary = 'RSpec extensions for RDF.rb.'
12+
gem.description = 'RDF.rb extension that provides RSpec matchers and shared examples for RDF objects.'
13+
gem.rubyforge_project = 'rdf'
14+
15+
gem.authors = ['Arto Bendiken', 'Ben Lavender', 'Gregg Kellogg']
16+
gem.email = '[email protected]'
17+
18+
gem.platform = Gem::Platform::RUBY
19+
gem.files = %w(AUTHORS CREDITS README UNLICENSE VERSION) + Dir.glob('etc/*') + Dir.glob('lib/**/*.rb') + Dir.glob('spec/*.rb')
20+
gem.bindir = %q(bin)
21+
gem.executables = %w()
22+
gem.default_executable = gem.executables.first
23+
gem.require_paths = %w(lib)
24+
gem.extensions = %w()
25+
gem.test_files = %w()
26+
gem.has_rdoc = false
27+
28+
gem.required_ruby_version = '>= 1.9.2'
29+
gem.requirements = []
30+
gem.add_development_dependency 'rdf', '~> 1.1'
31+
gem.add_runtime_dependency 'rspec', '~> 2.14'
32+
gem.add_development_dependency 'yard' , '~> 0.8'
33+
gem.post_install_message = nil
34+
end

0 commit comments

Comments
 (0)