Skip to content

Commit 424baca

Browse files
committed
Merge branch 'master' of https://github.com/seuros/closure_tree into pr111
2 parents 696032e + 2c3b53c commit 424baca

12 files changed

+358
-348
lines changed

closure_tree.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
2121

2222
gem.add_development_dependency 'rake'
2323
gem.add_development_dependency 'yard'
24-
gem.add_development_dependency 'rspec', '~> 2.14.0' # FIXME: migrate to rspec 3 (or, better, ditch rspec and switch to minitest)
24+
gem.add_development_dependency 'rspec', '>= 3.0'
2525
gem.add_development_dependency 'rspec-instafail'
2626
gem.add_development_dependency 'rspec-rails' # FIXME: for rspec-rails and rspec fixture support
2727
gem.add_development_dependency 'uuidtools'

lib/closure_tree/hierarchy_maintenance.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def _ct_validate
2525
changes[_ct.parent_column_name] && # don't validate for cycles if we didn't change our parent
2626
parent.present? && # don't validate if we're root
2727
parent.self_and_ancestors.include?(self) # < this is expensive :\
28-
errors.add(_ct.parent_column_sym, "You cannot add an ancestor as a descendant")
28+
errors.add(_ct.parent_column_sym, I18n.t('closure_tree.loop_error', default: 'You cannot add an ancestor as a descendant'))
2929
end
3030
end
3131

lib/closure_tree/test/matcher.rb

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,39 @@ def be_a_closure_tree
77

88
class ClosureTree
99
def matches?(subject)
10-
@subject = subject
10+
@subject = subject.is_a?(Class) ? subject : subject.class
1111
# OPTIMIZE
1212
if @subject.respond_to?(:_ct)
1313

1414
unless @subject.column_names.include?(@subject._ct.parent_column_name)
15-
@message = "expected #{@subject.class.name} to respond to #{@subject._ct.parent_column_name}"
15+
@message = "expected #{@subject.name} to respond to #{@subject._ct.parent_column_name}"
1616
return false
1717
end
1818

1919
# Checking if hierarchy table exists (common error)
2020
unless @subject.hierarchy_class.table_exists?
21-
@message = "expected #{@subject.class.name}'s hierarchy table '#{@subject.hierarchy_class.table_name}' to exist"
21+
@message = "expected #{@subject.name}'s hierarchy table '#{@subject.hierarchy_class.table_name}' to exist"
2222
return false
2323
end
2424

2525
if @ordered
2626
unless @subject._ct.options.include?(:order)
27-
@message = "expected #{@subject.class.name} to be an ordered closure tree"
27+
@message = "expected #{@subject.name} to be an ordered closure tree"
2828
return false
2929
end
3030
unless @subject.column_names.include?(@subject._ct.options[:order].to_s)
31-
@message = "expected #{@subject.class.name} to have #{@subject._ct.options[:order]} as column"
31+
@message = "expected #{@subject.name} to have #{@subject._ct.options[:order]} as column"
3232
return false
3333
end
3434
end
3535

3636
if @with_advisory_lock && !@subject._ct.options[:with_advisory_lock]
37-
@message = "expected #{@subject.class.name} to have advisory lock"
37+
@message = "expected #{@subject.name} to have advisory lock"
3838
return false
3939
end
4040

4141
if @without_advisory_lock && @subject._ct.options[:with_advisory_lock]
42-
@message = "expected #{@subject.class.name} to not have advisory lock"
42+
@message = "expected #{@subject.name} to not have advisory lock"
4343
return false
4444
end
4545

@@ -65,13 +65,13 @@ def without_advisory_lock
6565
end
6666

6767
def failure_message
68-
@message || "expected #{@subject.class.name} to #{description}"
68+
@message || "expected #{@subject.name} to #{description}"
6969
end
7070

7171
alias_method :failure_message_for_should, :failure_message
7272

7373
def failure_message_when_negated
74-
"expected #{@subject.class.name} not be a closure tree, but it is."
74+
"expected #{@subject.name} not be a closure tree, but it is."
7575
end
7676

7777
alias_method :failure_message_for_should_not, :failure_message_when_negated
@@ -83,3 +83,7 @@ def description
8383
end
8484
end
8585
end
86+
87+
RSpec.configure do |c|
88+
c.include ClosureTree::Test::Matcher, type: :model
89+
end

spec/cuisine_type_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
require 'spec_helper'
22

33
def assert_lineage(e, m)
4-
m.parent.should == e
5-
m.self_and_ancestors.should == [m, e]
4+
expect(m.parent).to eq(e)
5+
expect(m.self_and_ancestors).to eq([m, e])
66

77
# make sure reloading doesn't affect the self_and_ancestors:
88
m.reload
9-
m.self_and_ancestors.should == [m, e]
9+
expect(m.self_and_ancestors).to eq([m, e])
1010
end
1111

1212
describe CuisineType do
@@ -25,14 +25,14 @@ def assert_lineage(e, m)
2525
end
2626

2727
it "sets the table_name of the hierarchy class properly" do
28-
CuisineTypeHierarchy.table_name.should == ActiveRecord::Base.table_name_prefix + "cuisine_type_hierarchies" + ActiveRecord::Base.table_name_suffix
28+
expect(CuisineTypeHierarchy.table_name).to eq(ActiveRecord::Base.table_name_prefix + "cuisine_type_hierarchies" + ActiveRecord::Base.table_name_suffix)
2929
end
3030

3131
it 'fixes self_and_ancestors properly on reparenting' do
3232
a = CuisineType.create! :name => 'a'
3333
b = CuisineType.create! :name => 'b'
34-
b.self_and_ancestors.to_a.should == [b]
34+
expect(b.self_and_ancestors.to_a).to eq([b])
3535
a.children << b
36-
b.self_and_ancestors.to_a.should == [b, a]
36+
expect(b.self_and_ancestors.to_a).to eq([b, a])
3737
end
3838
end

0 commit comments

Comments
 (0)