OSDN Git Service

now can specify operator fraction
authorokimoto <okimoto@good-day.co.jp>
Thu, 4 Mar 2010 04:54:02 +0000 (13:54 +0900)
committerokimoto <okimoto@good-day.co.jp>
Thu, 4 Mar 2010 04:54:02 +0000 (13:54 +0900)
lib/acts_as_problem.rb
spec/lib/acts_as_problem_spec.rb
spec/models/complex_number_arithmetic_edit_form_spec.rb [moved from spec/models/complex_number_arithmetic_edit_form.rb with 100% similarity]

index b1effbf..710f466 100644 (file)
@@ -83,6 +83,7 @@ module ActsAsProblem
       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
 
@@ -91,6 +92,7 @@ module ActsAsProblem
       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
index 46bf2e3..04c95a0 100644 (file)
@@ -10,7 +10,7 @@ class BarEditForm < ActiveForm
 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
@@ -187,13 +187,14 @@ 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)
@@ -203,7 +204,7 @@ describe ActsAsProblem do
       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
 
@@ -218,6 +219,7 @@ describe ActsAsProblem do
           subject{
             @basic.operators_plus = false
             @basic.operators_minus = false
+            @basic.operators_fraction = false
             @basic
           }
           it{ should be_valid }
@@ -226,10 +228,10 @@ describe ActsAsProblem do
     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
 
@@ -237,6 +239,7 @@ describe ActsAsProblem do
       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