sequel_core 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +4 -0
 - data/Rakefile +1 -1
 - data/lib/sequel_core/dataset/sequelizer.rb +9 -2
 - data/spec/dataset_spec.rb +9 -5
 - data/spec/sequelizer_spec.rb +11 -0
 - metadata +1 -1
 
    
        data/CHANGELOG
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -9,7 +9,7 @@ include FileUtils 
     | 
|
| 
       9 
9 
     | 
    
         
             
            # Configuration
         
     | 
| 
       10 
10 
     | 
    
         
             
            ##############################################################################
         
     | 
| 
       11 
11 
     | 
    
         
             
            NAME = "sequel_core"
         
     | 
| 
       12 
     | 
    
         
            -
            VERS = "1.0. 
     | 
| 
      
 12 
     | 
    
         
            +
            VERS = "1.0.7"
         
     | 
| 
       13 
13 
     | 
    
         
             
            CLEAN.include ["**/.*.sw?", "pkg/*", ".config", "doc/*", "coverage/*"]
         
     | 
| 
       14 
14 
     | 
    
         
             
            RDOC_OPTS = [
         
     | 
| 
       15 
15 
     | 
    
         
             
              "--quiet", 
         
     | 
| 
         @@ -285,7 +285,14 @@ class Sequel::Dataset 
     | 
|
| 
       285 
285 
     | 
    
         
             
                    l = e[1]
         
     | 
| 
       286 
286 
     | 
    
         
             
                    r = eval_expr(e[2], b, opts)
         
     | 
| 
       287 
287 
     | 
    
         
             
                    raise Sequel::Error::InvalidExpression, "#{l} = #{r}. Did you mean :#{l} == #{r}?"
         
     | 
| 
       288 
     | 
    
         
            -
                  when :if 
     | 
| 
      
 288 
     | 
    
         
            +
                  when :if
         
     | 
| 
      
 289 
     | 
    
         
            +
                    op, c, br1, br2 = *e
         
     | 
| 
      
 290 
     | 
    
         
            +
                    if ext_expr(c, b, opts)
         
     | 
| 
      
 291 
     | 
    
         
            +
                      eval_expr(br1, b, opts)
         
     | 
| 
      
 292 
     | 
    
         
            +
                    elsif br2
         
     | 
| 
      
 293 
     | 
    
         
            +
                      eval_expr(br2, b, opts)
         
     | 
| 
      
 294 
     | 
    
         
            +
                    end
         
     | 
| 
      
 295 
     | 
    
         
            +
                  when :dstr
         
     | 
| 
       289 
296 
     | 
    
         
             
                    ext_expr(e, b, opts)
         
     | 
| 
       290 
297 
     | 
    
         
             
                  else
         
     | 
| 
       291 
298 
     | 
    
         
             
                    raise Sequel::Error::InvalidExpression, "Invalid expression tree: #{e.inspect}"
         
     | 
| 
         @@ -308,7 +315,7 @@ class Sequel::Dataset 
     | 
|
| 
       308 
315 
     | 
    
         
             
                    "(#{e[1..-1].map {|i| pt_expr(i, b, opts)}.join(JOIN_AND)})"
         
     | 
| 
       309 
316 
     | 
    
         
             
                  when :or # x || y
         
     | 
| 
       310 
317 
     | 
    
         
             
                    "(#{pt_expr(e[1], b, opts)} OR #{pt_expr(e[2], b, opts)})"
         
     | 
| 
       311 
     | 
    
         
            -
                  when :call, :vcall, :iter, :match3 # method calls, blocks
         
     | 
| 
      
 318 
     | 
    
         
            +
                  when :call, :vcall, :iter, :match3, :if # method calls, blocks
         
     | 
| 
       312 
319 
     | 
    
         
             
                    eval_expr(e, b, opts)
         
     | 
| 
       313 
320 
     | 
    
         
             
                  when :block # block of statements
         
     | 
| 
       314 
321 
     | 
    
         
             
                    if opts[:comma_separated]
         
     | 
    
        data/spec/dataset_spec.rb
    CHANGED
    
    | 
         @@ -1117,9 +1117,13 @@ context "Dataset#join_table" do 
     | 
|
| 
       1117 
1117 
     | 
    
         
             
                proc {@d.join_table(:invalid, :a, :b)}.should raise_error(Sequel::Error)
         
     | 
| 
       1118 
1118 
     | 
    
         
             
              end
         
     | 
| 
       1119 
1119 
     | 
    
         | 
| 
       1120 
     | 
    
         
            -
              specify "should  
     | 
| 
      
 1120 
     | 
    
         
            +
              specify "should support aliased tables" do
         
     | 
| 
       1121 
1121 
     | 
    
         
             
                @d.from('stats s').join('players p', :id => :player_id).sql.should ==
         
     | 
| 
       1122 
1122 
     | 
    
         
             
                  'SELECT * FROM stats s INNER JOIN players p ON (p.id = s.player_id)'
         
     | 
| 
      
 1123 
     | 
    
         
            +
             
     | 
| 
      
 1124 
     | 
    
         
            +
                ds = Sequel::Dataset.new(nil).from(:foo => :f). \
         
     | 
| 
      
 1125 
     | 
    
         
            +
                  join_table(:inner, :bar, :id => :bar_id).sql.should ==
         
     | 
| 
      
 1126 
     | 
    
         
            +
                  'SELECT * FROM foo f INNER JOIN bar ON (bar.id = f.bar_id)'
         
     | 
| 
       1123 
1127 
     | 
    
         
             
              end
         
     | 
| 
       1124 
1128 
     | 
    
         | 
| 
       1125 
1129 
     | 
    
         
             
              specify "should allow for arbitrary conditions in the JOIN clause" do
         
     | 
| 
         @@ -1133,11 +1137,11 @@ context "Dataset#join_table" do 
     | 
|
| 
       1133 
1137 
     | 
    
         
             
                  "SELECT * FROM items LEFT OUTER JOIN categories ON (categories.status IN (1, 2, 3))"
         
     | 
| 
       1134 
1138 
     | 
    
         
             
              end
         
     | 
| 
       1135 
1139 
     | 
    
         | 
| 
       1136 
     | 
    
         
            -
              specify "should  
     | 
| 
       1137 
     | 
    
         
            -
                 
     | 
| 
       1138 
     | 
    
         
            -
                   
     | 
| 
       1139 
     | 
    
         
            -
                  'SELECT * FROM foo f INNER JOIN bar ON (bar.id = f.bar_id)'
         
     | 
| 
      
 1140 
     | 
    
         
            +
              specify "should raise error for a table without a source" do
         
     | 
| 
      
 1141 
     | 
    
         
            +
                proc {Sequel::Dataset.new(nil).join('players p', :id => :player_id)}. \
         
     | 
| 
      
 1142 
     | 
    
         
            +
                  should raise_error(Sequel::Error)
         
     | 
| 
       1140 
1143 
     | 
    
         
             
              end
         
     | 
| 
      
 1144 
     | 
    
         
            +
             
     | 
| 
       1141 
1145 
     | 
    
         
             
            end
         
     | 
| 
       1142 
1146 
     | 
    
         | 
| 
       1143 
1147 
     | 
    
         
             
            context "Dataset#[]=" do
         
     | 
    
        data/spec/sequelizer_spec.rb
    CHANGED
    
    | 
         @@ -474,6 +474,17 @@ context "Proc#to_sql" do 
     | 
|
| 
       474 
474 
     | 
    
         | 
| 
       475 
475 
     | 
    
         
             
                proc {:x == ("%d" % prod).lit}.sql.should == "(x = 1)"
         
     | 
| 
       476 
476 
     | 
    
         
             
              end
         
     | 
| 
      
 477 
     | 
    
         
            +
              
         
     | 
| 
      
 478 
     | 
    
         
            +
              specify "should support conditional filters" do
         
     | 
| 
      
 479 
     | 
    
         
            +
                @criteria = nil
         
     | 
| 
      
 480 
     | 
    
         
            +
                proc {if @criteria; :x.like @criteria; end}.sql.should == nil
         
     | 
| 
      
 481 
     | 
    
         
            +
                
         
     | 
| 
      
 482 
     | 
    
         
            +
                @criteria = 'blah'
         
     | 
| 
      
 483 
     | 
    
         
            +
                proc {if @criteria; :x.like @criteria; end}.sql.should == "(x LIKE 'blah')"
         
     | 
| 
      
 484 
     | 
    
         
            +
             
     | 
| 
      
 485 
     | 
    
         
            +
                @criteria = nil
         
     | 
| 
      
 486 
     | 
    
         
            +
                proc {if @criteria; :x.like @criteria; else; :x.like 'ddd'; end}.sql.should == "(x LIKE 'ddd')"
         
     | 
| 
      
 487 
     | 
    
         
            +
              end
         
     | 
| 
       477 
488 
     | 
    
         
             
            end
         
     | 
| 
       478 
489 
     | 
    
         | 
| 
       479 
490 
     | 
    
         
             
            context "Proc#to_sql stock" do
         
     |