arr << "-" if self.class.column_names.include?("operators_minus") && operators_minus
arr << "*" if self.class.column_names.include?("operators_times") && operators_times
arr << "div" if self.class.column_names.include?("operators_div") && operators_div
+ arr << "/" if self.class.column_names.include?("operators_fraction") && operators_fraction
arr
end
self.operators_minus = arr.include?("-") if self.class.column_names.include?("operators_minus")
self.operators_times = arr.include?("*") if self.class.column_names.include?("operators_times")
self.operators_div = arr.include?("div") if self.class.column_names.include?("operators_div")
+ self.operators_fraction = arr.include?("/") if self.class.column_names.include?("operators_fraction")
end
end
end
end
class BazEditForm < ActiveForm
- acts_as_problem :operators => %w[plus minus], :term_number => true
+ acts_as_problem :operators => %w[plus minus fraction], :term_number => true
end
describe ActsAsProblem do
describe "with options (operators is Array)" do
before do
@valid_attributes = {
- :unit_id => 1,
- :level => 1,
- :amount => 2,
- :lock_version => 0,
- :term_number => 2,
- :operators_plus => true,
- :operators_minus => true,
+ :unit_id => 1,
+ :level => 1,
+ :amount => 2,
+ :lock_version => 0,
+ :term_number => 2,
+ :operators_plus => true,
+ :operators_minus => true,
+ :operators_fraction => true,
}
@klass = BazEditForm
@basic = @klass.new(@valid_attributes)
it{
@klass.column_names.should ==
%w[unit_id level amount lock_version
- operators_plus operators_minus term_number]
+ operators_plus operators_minus operators_fraction term_number]
}
end
subject{
@basic.operators_plus = false
@basic.operators_minus = false
+ @basic.operators_fraction = false
@basic
}
it{ should be_valid }
end
context "operators" do
- it{ @basic.operators.should == %w[+ -] }
+ it{ @basic.operators.should == %w[+ - /] }
context "set false" do
subject{ @basic.operators_plus = false ; @basic.operators }
- it{ should == %w[-] }
+ it{ should == %w[- /] }
end
end
subject{ @basic.operators = %w[+ -]; @basic }
its(:operators_plus){ should be_true }
its(:operators_minus){ should be_true }
+ its(:operators_fraction){ should_not be_true }
end
end
end