ddbcli 0.1.6 → 0.1.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/bin/ddbcli +1 -1
- data/lib/ddbcli/cli/functions.rb +7 -2
- data/lib/ddbcli/ddb-driver.rb +31 -7
- data/lib/ddbcli/ddb-parser.tab.rb +1 -1
- data/lib/ddbcli/ddb-parser.y +2 -2
- metadata +2 -2
    
        data/bin/ddbcli
    CHANGED
    
    
    
        data/lib/ddbcli/cli/functions.rb
    CHANGED
    
    | @@ -46,8 +46,13 @@ def print_json(data, opts = {}) | |
| 46 46 |  | 
| 47 47 | 
             
              str.sub!(/(?:\r\n|\r|\n)*\Z/, "\n")
         | 
| 48 48 |  | 
| 49 | 
            -
              if opts[:show_rows] | 
| 50 | 
            -
             | 
| 49 | 
            +
              if opts[:show_rows]
         | 
| 50 | 
            +
               if [Array, Hash].any? {|i| data.kind_of?(i) }
         | 
| 51 | 
            +
                  str << "// #{data.length} #{data.length > 1 ? 'rows' : 'row'} in set"
         | 
| 52 | 
            +
                else
         | 
| 53 | 
            +
                  str << '// 1 row in set'
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 51 56 | 
             
                str << " (%.2f sec)" % opts[:time] if opts[:time]
         | 
| 52 57 | 
             
                str << "\n"
         | 
| 53 58 | 
             
              end
         | 
    
        data/lib/ddbcli/ddb-driver.rb
    CHANGED
    
    | @@ -193,7 +193,10 @@ module DynamoDB | |
| 193 193 |  | 
| 194 194 | 
             
                  table_names.map do |table_name|
         | 
| 195 195 | 
             
                    table_info = @client.query('DescribeTable', 'TableName' => table_name)['Table']
         | 
| 196 | 
            -
                    h[table_name] =  | 
| 196 | 
            +
                    h[table_name] = {
         | 
| 197 | 
            +
                      'TableStatus' => table_info['TableStatus'],
         | 
| 198 | 
            +
                      'ItemCount'   => table_info['ItemCount'],
         | 
| 199 | 
            +
                    }
         | 
| 197 200 | 
             
                  end
         | 
| 198 201 |  | 
| 199 202 | 
             
                  return h
         | 
| @@ -479,17 +482,27 @@ module DynamoDB | |
| 479 482 | 
             
                    end
         | 
| 480 483 | 
             
                  else
         | 
| 481 484 | 
             
                    retval = block_given? ? res_data['Items'].map {|i| yield(i) } : res_data['Items']
         | 
| 485 | 
            +
                    limit_orig = parsed.limit
         | 
| 486 | 
            +
             | 
| 487 | 
            +
                    if @iteratable or opts[:iteratable] or (parsed.limit and retval.length < parsed.limit)
         | 
| 488 | 
            +
                      parsed.limit -= retval.length if parsed.limit
         | 
| 482 489 |  | 
| 483 | 
            -
                    if (@iteratable or opts[:iteratable]) and not parsed.limit
         | 
| 484 490 | 
             
                      while res_data['LastEvaluatedKey']
         | 
| 485 491 | 
             
                        res_data = select_proc.call(res_data['LastEvaluatedKey'])
         | 
| 486 | 
            -
                         | 
| 487 | 
            -
             | 
| 488 | 
            -
                        )
         | 
| 492 | 
            +
                        items = block_given? ? res_data['Items'].map {|i| yield(i) } : res_data['Items']
         | 
| 493 | 
            +
             | 
| 494 | 
            +
                        retval.concat(items)
         | 
| 495 | 
            +
             | 
| 496 | 
            +
                        if parsed.limit
         | 
| 497 | 
            +
                          parsed.limit -= items.length
         | 
| 498 | 
            +
                          break if parsed.limit < 1
         | 
| 499 | 
            +
                        end
         | 
| 489 500 | 
             
                      end
         | 
| 490 501 | 
             
                    end
         | 
| 491 502 | 
             
                  end
         | 
| 492 503 |  | 
| 504 | 
            +
                  parsed.limit = limit_orig;
         | 
| 505 | 
            +
             | 
| 493 506 | 
             
                  if res_data['LastEvaluatedKey']
         | 
| 494 507 | 
             
                    @last_action = action
         | 
| 495 508 | 
             
                    @last_parsed = parsed
         | 
| @@ -667,7 +680,9 @@ module DynamoDB | |
| 667 680 | 
             
                    end # scan filter
         | 
| 668 681 |  | 
| 669 682 | 
             
                    res_data = @client.query('Scan', req_hash)
         | 
| 670 | 
            -
                     | 
| 683 | 
            +
                    res_data_items = res_data['Items']
         | 
| 684 | 
            +
                    parsed.limit -= res_data_items.length if parsed.limit
         | 
| 685 | 
            +
                    items.concat(res_data_items)
         | 
| 671 686 | 
             
                    res_data['LastEvaluatedKey']
         | 
| 672 687 | 
             
                  end
         | 
| 673 688 |  | 
| @@ -675,7 +690,10 @@ module DynamoDB | |
| 675 690 |  | 
| 676 691 | 
             
                  loop do
         | 
| 677 692 | 
             
                    lek = scan.call(lek)
         | 
| 678 | 
            -
             | 
| 693 | 
            +
             | 
| 694 | 
            +
                    if not lek or (parsed.limit and parsed.limit < 1)
         | 
| 695 | 
            +
                      break
         | 
| 696 | 
            +
                    end
         | 
| 679 697 | 
             
                  end
         | 
| 680 698 |  | 
| 681 699 | 
             
                  return items
         | 
| @@ -761,7 +779,13 @@ module DynamoDB | |
| 761 779 | 
             
                end
         | 
| 762 780 |  | 
| 763 781 | 
             
                def do_insert_select(action, parsed)
         | 
| 782 | 
            +
                  if parsed.count
         | 
| 783 | 
            +
                    raise DynamoDB::Error, '"COUNT(*)" cannot be inserted.'
         | 
| 784 | 
            +
                  end
         | 
| 785 | 
            +
             | 
| 764 786 | 
             
                  items = do_select0(action, parsed.select, :iteratable => true)
         | 
| 787 | 
            +
                  items = items.data if items.kind_of?(Iteratorable)
         | 
| 788 | 
            +
             | 
| 765 789 | 
             
                  n = 0
         | 
| 766 790 |  | 
| 767 791 | 
             
                  until (chunk = items.slice!(0, MAX_NUMBER_BATCH_PROCESS_ITEMS)).empty?
         | 
    
        data/lib/ddbcli/ddb-parser.y
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ddbcli
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.7
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-05- | 
| 12 | 
            +
            date: 2013-05-13 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: json
         |