td 0.10.85 → 0.10.86

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e3a7c671d16731ca4b03f3063b539b9d88165483
4
+ data.tar.gz: 348c5b2ca638734cfc6f47a5f47500a9e9c188d0
5
+ SHA512:
6
+ metadata.gz: 960cae5f7a35493c5b68d5cca143015947a0b438ace3856c6b922f3779e52fafbba0908b8ef50de7eda17770d42f760fd208695101e7213f558045c7f7fc8c0c
7
+ data.tar.gz: 9c1438ba072e135c4fdf96ff5fe3d50f49a6617ceb93ecda9a14b9b580cae61ccb5e03e6d721852f046c5f6ac6826efef8dc339815012e747e1eba0b3785b506
data/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ == 2013-08-26 version 0.10.86
2
+
3
+ * Improve bulk_import and import command explanation
4
+ * Add import:auto subcommand
5
+
6
+
1
7
  == 2013-08-23 version 0.10.85
2
8
 
3
9
  * Fix 'undefined method job_priority_id_of' error
@@ -197,6 +197,10 @@ module Command
197
197
  end
198
198
  end
199
199
 
200
+ def bulk_import_upload_parts2(op)
201
+ puts "This command is moved to 'td import:upload' since 0.10.85."
202
+ end
203
+
200
204
  # obsoleted
201
205
  def bulk_import_delete_part(op)
202
206
  name, part_name = op.cmd_parse
@@ -423,352 +427,8 @@ module Command
423
427
  $stderr.puts normalized_message if has_bignum
424
428
  end
425
429
 
426
- def bulk_import_upload_parts2(op)
427
- opts = upload_parts2_config(op)
428
-
429
- # java command
430
- javacmd = 'java'
431
-
432
- # make jvm options
433
- jvm_opts = []
434
- jvm_opts << "-Xmx1024m" # TODO
435
-
436
- # find java/*.jar and td.jar
437
- base_path = File.expand_path('../../..', File.dirname(__FILE__)) # TODO
438
- libjars = Dir.glob("#{base_path}/java/**/*.jar")
439
- found = libjars.find { |path| File.basename(path) =~ /^td-bulk-import/ }
440
- td_command_jar = libjars.delete(found)
441
-
442
- # make application options
443
- app_opts = []
444
- app_opts << "-cp \"#{td_command_jar}\""
445
-
446
- # make system properties
447
- sysprops = []
448
- sysprops.concat(upload_parts2_sysprops(opts))
449
-
450
- # make application arguments
451
- app_args = []
452
- app_args << 'com.treasure_data.bulk_import.Main'
453
- app_args << 'upload_parts'
454
- app_args << opts[21]
455
-
456
- # TODO consider parameters including spaces; don't use join(' ')
457
- command = "#{javacmd} #{jvm_opts.join(' ')} #{app_opts.join(' ')} #{sysprops.join(' ')} #{app_args.join(' ')}"
458
-
459
- exec command
460
- end
461
-
462
430
  def bulk_import_prepare_parts2(op)
463
- opts = prepare_parts2_config(op)
464
-
465
- # java command
466
- javacmd = 'java'
467
-
468
- # make jvm options
469
- jvm_opts = []
470
- jvm_opts << "-Xmx1024m" # TODO
471
-
472
- # find java/*.jar and td.jar
473
- base_path = File.expand_path('../../..', File.dirname(__FILE__)) # TODO
474
- libjars = Dir.glob("#{base_path}/java/**/*.jar")
475
- found = libjars.find { |path| File.basename(path) =~ /^td-bulk-import/ }
476
- td_command_jar = libjars.delete(found)
477
-
478
- # make application options
479
- app_opts = []
480
- app_opts << "-cp \"#{td_command_jar}\""
481
-
482
- # make system properties
483
- sysprops = []
484
- sysprops.concat(prepare_parts2_sysprops(opts))
485
-
486
- # make application arguments
487
- app_args = []
488
- app_args << 'com.treasure_data.bulk_import.Main'
489
- app_args << 'prepare_parts'
490
- app_args << opts[18]
491
-
492
- # TODO consider parameters including spaces; don't use join(' ')
493
- command = "#{javacmd} #{jvm_opts.join(' ')} #{app_opts.join(' ')} #{sysprops.join(' ')} #{app_args.join(' ')}"
494
-
495
- exec command
496
- end
497
-
498
- private
499
- def prepare_parts2_sysprops(opts)
500
- sysprops = []
501
- sysprops << "-Dtd.bulk_import.prepare_parts.format=#{opts[0]}"
502
- sysprops << "-Dtd.bulk_import.prepare_parts.compression=#{opts[1]}"
503
- sysprops << "-Dtd.bulk_import.prepare_parts.encoding=#{opts[2]}"
504
- sysprops << "-Dtd.bulk_import.prepare_parts.time-column=#{opts[3]}"
505
- sysprops << "-Dtd.bulk_import.prepare_parts.time-format=#{opts[4]}"
506
- sysprops << "-Dtd.bulk_import.prepare_parts.time-value=#{opts[5].to_s}" if opts[5]
507
- sysprops << "-Dtd.bulk_import.prepare_parts.output-dir=#{opts[6]}"
508
- sysprops << "-Dtd.bulk_import.prepare_parts.split-size=#{opts[7]}"
509
- sysprops << "-Dtd.bulk_import.prepare_parts.error-record-output=#{opts[8]}" if opts[8]
510
- sysprops << "-Dtd.bulk_import.prepare_parts.dry-run=#{opts[9]}"
511
- sysprops << "-Dtd.bulk_import.prepare_parts.delimiter=#{opts[10]}"
512
- sysprops << "-Dtd.bulk_import.prepare_parts.newline=#{opts[11]}"
513
- sysprops << "-Dtd.bulk_import.prepare_parts.column-header=#{opts[12]}" if opts[3]
514
- sysprops << "-Dtd.bulk_import.prepare_parts.columns=#{opts[13]}" if opts[1]
515
- sysprops << "-Dtd.bulk_import.prepare_parts.column-types=#{opts[14]}" if opts[2]
516
- sysprops << "-Dtd.bulk_import.prepare_parts.type-conversion-error=#{opts[15]}" if opts[15]
517
- sysprops << "-Dtd.bulk_import.prepare_parts.exclude-columns=#{opts[16]}"
518
- sysprops << "-Dtd.bulk_import.prepare_parts.only-columns=#{opts[17]}"
519
- sysprops
520
- end
521
-
522
- private
523
- def upload_parts2_sysprops(opts)
524
- sysprops = []
525
- sysprops << "-Dtd.bulk_import.prepare_parts.format=#{opts[0]}"
526
- sysprops << "-Dtd.bulk_import.prepare_parts.compression=#{opts[1]}"
527
- sysprops << "-Dtd.bulk_import.prepare_parts.encoding=#{opts[2]}"
528
- sysprops << "-Dtd.bulk_import.prepare_parts.time-column=#{opts[3]}"
529
- sysprops << "-Dtd.bulk_import.prepare_parts.time-format=#{opts[4]}"
530
- sysprops << "-Dtd.bulk_import.prepare_parts.time-value=#{opts[5].to_s}" if opts[5]
531
- sysprops << "-Dtd.bulk_import.prepare_parts.output-dir=#{opts[6]}"
532
- sysprops << "-Dtd.bulk_import.prepare_parts.split-size=#{opts[7]}"
533
- sysprops << "-Dtd.bulk_import.prepare_parts.error-record-output=#{opts[8]}" if opts[8]
534
- sysprops << "-Dtd.bulk_import.prepare_parts.dry-run=#{opts[9]}"
535
- sysprops << "-Dtd.bulk_import.prepare_parts.delimiter=#{opts[10]}"
536
- sysprops << "-Dtd.bulk_import.prepare_parts.newline=#{opts[11]}"
537
- sysprops << "-Dtd.bulk_import.prepare_parts.column-header=#{opts[12]}" if opts[3]
538
- sysprops << "-Dtd.bulk_import.prepare_parts.columns=#{opts[13]}" if opts[1]
539
- sysprops << "-Dtd.bulk_import.prepare_parts.column-types=#{opts[14]}" if opts[2]
540
- sysprops << "-Dtd.bulk_import.prepare_parts.type-conversion-error=#{opts[15]}" if opts[15]
541
- sysprops << "-Dtd.bulk_import.prepare_parts.exclude-columns=#{opts[16]}"
542
- sysprops << "-Dtd.bulk_import.prepare_parts.only-columns=#{opts[17]}"
543
-
544
- sysprops << "-Dtd.bulk_import.upload_parts.auto-perform=#{opts[18]}"
545
- sysprops << "-Dtd.bulk_import.upload_parts.auto-commit=#{opts[19]}"
546
- sysprops << "-Dtd.bulk_import.upload_parts.parallel=#{opts[20]}"
547
- sysprops << "-Dtd.bulk_import.upload_parts.retrycount=10"
548
- sysprops << "-Dtd.bulk_import.upload_parts.waitsec=1"
549
- sysprops << "-Dtd.api.key=#{get_client.apikey}"
550
- sysprops
551
- end
552
-
553
- private
554
- def prepare_parts2_config(op)
555
- format = 'csv'
556
- compress = 'none'
557
- encoding = 'utf-8'
558
- time_column = 'time'
559
- time_format = nil
560
- time_value = nil
561
- outdir = nil
562
- split_size_kb = PART_SPLIT_SIZE / 1024 # kb
563
- error_record_output = nil
564
- dry_run = false
565
-
566
- delimiter = ','
567
- newline = 'CRLF'
568
- column_header = nil
569
- columns = nil
570
- column_types = nil
571
- type_conversion_error = 'skip'
572
- exclude_columns = nil
573
- only_columns = nil
574
-
575
- # prepare_parts
576
- op.on('-f', '--format NAME', 'source file format [csv, tsv]; default=csv') {|s|
577
- format = s
578
- }
579
- op.on('-C', '--compress TYPE', 'compressed type [gzip, none]; default=auto detect') {|s|
580
- compress = s
581
- }
582
- op.on('-e', '--encoding TYPE', 'encoding type [utf-8]') {|s|
583
- encoding = s
584
- }
585
- op.on('-t', '--time-column NAME', 'name of the time column') {|s|
586
- time_column = s
587
- }
588
- op.on('-T', '--time-format', 'STRF_FORMAT; default=auto detect') {|s|
589
- time_format = s
590
- }
591
- op.on('--time-value TIME', 'long value of the time column') {|s|
592
- if s.to_i.to_s == s
593
- time_value = s.to_i
594
- else
595
- require 'time'
596
- time_value = Time.parse(s).to_i
597
- end
598
- }
599
- op.on('-o', '--output DIR', 'output directory') {|s|
600
- outdir = s
601
- }
602
- op.on('-s', '--split-size SIZE_IN_KB', "size of each parts (default: #{split_size_kb})", Integer) {|i|
603
- split_size_kb = i
604
- }
605
- op.on('--error-record-output FILE', 'error records output file; default=NULL output stream') {|s|
606
- error_record_outdir = s
607
- }
608
- op.on('--dry-run', 'show samples as JSON and exit', FalseClass) {|b|
609
- dry_run = b
610
- }
611
- op.on('--delimiter CHAR', 'delimiter CHAR; default="," at csv, "\t" at tsv') {|s|
612
- delimiter = s
613
- }
614
- op.on('--newline', 'newline [CRLR, LR, CR]; default=CRLF') {|s|
615
- newline = s
616
- }
617
- op.on('-H', '--column-header', 'first line includes column names', TrueClass) {|b|
618
- column_header = b
619
- }
620
- op.on('-h', '--columns NAME,NAME,...', 'column names (use --column-header instead if the first line has column names)') {|s|
621
- columns = s
622
- }
623
- op.on('--column-types TYPE,TYPE,...', 'column types [string, int, long]') {|s|
624
- column_types = s
625
- }
626
- op.on('--type-conversion-error TYPE', 'type conversion error [skip,null]; default=skip') {|s|
627
- type_conversion_error = s
628
- }
629
- op.on('--exclude-columns NAME,NAME,...', 'exclude columns') {|s|
630
- exclude_columns = s
631
- }
632
- op.on('--only-columns NAME,NAME,...', 'only columns') {|s|
633
- only_columns = s
634
- }
635
-
636
- files = op.cmd_parse
637
- files = [files] unless files.is_a?(Array) # TODO ruby 1.9
638
-
639
- # options validation
640
- #unless column_types
641
- # $stderr.puts "--column-types TYPE,TYPE,... option is required."
642
- # exit 1
643
- #end
644
- unless outdir
645
- $stderr.puts "-o, --output DIR option is required."
646
- exit 1
647
- end
648
-
649
- return [ format, compress, encoding,
650
- time_column, time_format, time_value,
651
- outdir, split_size_kb, error_record_output, dry_run,
652
- delimiter, newline, column_header, columns, column_types,
653
- type_conversion_error, exclude_columns, only_columns, files ]
654
- end
655
-
656
- private
657
- def upload_parts2_config(op)
658
- format = 'csv'
659
- compress = 'none'
660
- encoding = 'utf-8'
661
- time_column = 'time'
662
- time_format = nil
663
- time_value = nil
664
- outdir = nil
665
- split_size_kb = PART_SPLIT_SIZE / 1024 # kb
666
- error_record_output = nil
667
- dry_run = false
668
-
669
- delimiter = ','
670
- newline = 'CRLF'
671
- column_header = nil
672
- columns = nil
673
- column_types = nil
674
- type_conversion_error = 'skip'
675
- exclude_columns = nil
676
- only_columns = nil
677
-
678
- auto_perform = false
679
- auto_commit = false
680
- parallel = 2
681
-
682
- # prepare_parts
683
- op.on('-f', '--format NAME', 'source file format [csv, tsv]; default=csv') {|s|
684
- format = s
685
- }
686
- op.on('-C', '--compress TYPE', 'compressed type [gzip, none]; default=auto detect') {|s|
687
- compress = s
688
- }
689
- op.on('-e', '--encoding TYPE', 'encoding type [utf-8]') {|s|
690
- encoding = s
691
- }
692
- op.on('-t', '--time-column NAME', 'name of the time column') {|s|
693
- time_column = s
694
- }
695
- op.on('-T', '--time-format', 'STRF_FORMAT; default=auto detect') {|s|
696
- time_format = s
697
- }
698
- op.on('--time-value TIME', 'long value of the time column') {|s|
699
- if s.to_i.to_s == s
700
- time_value = s.to_i
701
- else
702
- require 'time'
703
- time_value = Time.parse(s).to_i
704
- end
705
- }
706
- op.on('-o', '--output DIR', 'output directory') {|s|
707
- outdir = s
708
- }
709
- op.on('-s', '--split-size SIZE_IN_KB', "size of each parts (default: #{split_size_kb})", Integer) {|i|
710
- split_size_kb = i
711
- }
712
- op.on('--error-record-output FILE', 'error records output file; default=NULL output stream') {|s|
713
- error_record_outdir = s
714
- }
715
- op.on('--dry-run', 'show samples as JSON and exit', FalseClass) {|b|
716
- dry_run = b
717
- }
718
- op.on('--delimiter CHAR', 'delimiter CHAR; default="," at csv, "\t" at tsv') {|s|
719
- delimiter = s
720
- }
721
- op.on('--newline', 'newline [CRLR, LR, CR]; default=CRLF') {|s|
722
- newline = s
723
- }
724
- op.on('-H', '--column-header', 'first line includes column names', TrueClass) {|b|
725
- column_header = b
726
- }
727
- op.on('-h', '--columns NAME,NAME,...', 'column names (use --column-header instead if the first line has column names)') {|s|
728
- columns = s
729
- }
730
- op.on('--column-types TYPE,TYPE,...', 'column types [string, int, long]') {|s|
731
- column_types = s
732
- }
733
- op.on('--type-conversion-error TYPE', 'type conversion error [skip,null]; default=skip') {|s|
734
- type_conversion_error = s
735
- }
736
- op.on('--exclude-columns NAME,NAME,...', 'exclude columns') {|s|
737
- exclude_columns = s
738
- }
739
- op.on('--only-columns NAME,NAME,...', 'only columns') {|s|
740
- only_columns = s
741
- }
742
- # upload_parts
743
- op.on('--auto-perform', 'perform bulk import job automatically', TrueClass) {|b|
744
- auto_perform = b
745
- }
746
- op.on('--auto-commit', 'commit bulk import job automatically', FalseClass) {|b|
747
- auto_commit = b
748
- }
749
- op.on('--parallel NUM', 'upload in parallel (default: 2; max 8)', Integer) {|i|
750
- parallel = i
751
- }
752
-
753
- files = op.cmd_parse
754
- files = [files] unless files.is_a?(Array) # TODO ruby 1.9
755
-
756
- # options validation
757
- #unless column_types
758
- # $stderr.puts "--column-types TYPE,TYPE,... option is required."
759
- # exit 1
760
- #end
761
- unless outdir
762
- $stderr.puts "-o, --output DIR option is required."
763
- exit 1
764
- end
765
-
766
- return [ format, compress, encoding,
767
- time_column, time_format, time_value,
768
- outdir, split_size_kb, error_record_output, dry_run,
769
- delimiter, newline, column_header, columns, column_types,
770
- type_conversion_error, exclude_columns, only_columns,
771
- auto_perform, auto_commit, parallel, files ]
431
+ puts "This command is moved to 'td import:prepare' since 0.10.85."
772
432
  end
773
433
 
774
434
  private
@@ -35,6 +35,10 @@ module Command
35
35
  import_generic(APP_OPTION_UPLOAD)
36
36
  end
37
37
 
38
+ def import_auto(op)
39
+ import_generic(APP_OPTION_UPLOAD, true)
40
+ end
41
+
38
42
  def import_perform(op)
39
43
  require 'td/command/bulk_import'
40
44
  bulk_import_perform(op)
@@ -66,7 +70,7 @@ module Command
66
70
  end
67
71
 
68
72
  private
69
- def import_generic(subcmd)
73
+ def import_generic(subcmd, auto=false)
70
74
  # has java runtime
71
75
  check_java
72
76
 
@@ -91,6 +95,10 @@ module Command
91
95
  else
92
96
  java_args << ARGV
93
97
  end
98
+ if auto
99
+ java_args << "--auto-perform"
100
+ java_args << "--auto-commit"
101
+ end
94
102
 
95
103
  # TODO consider parameters including spaces; don't use join(' ')
96
104
  cmd = "#{JAVA_COMMAND} #{jvm_opts.join(' ')} #{java_opts.join(' ')} #{sysprops.join(' ')} #{java_args.join(' ')}"
@@ -234,10 +234,8 @@ module List
234
234
  add_list 'bulk_import:show', %w[name], 'Show list of uploaded parts', 'bulk_import:show'
235
235
  add_list 'bulk_import:create', %w[name db table], 'Create a new bulk import session to the the table', 'bulk_import:create logs_201201 example_db event_logs'
236
236
  add_list 'bulk_import:prepare_parts', %w[files_], 'Convert files into part file format', 'bulk_import:prepare_parts logs/*.csv --format csv --columns time,uid,price,count --time-column "time" -o parts/'
237
- add_list 'bulk_import:prepare_parts2', %w[files_], 'Convert files into part file format', 'bulk_import:prepare_parts2 logs/*.csv --format csv --columns time,uid,price,count --column-types long,string,long,int --time-column "time" -o parts/'
238
237
  add_list 'bulk_import:upload_part', %w[name id path.msgpack.gz], 'Upload or re-upload a file into a bulk import session', 'bulk_import:upload_part logs_201201 01h data-201201-01.msgpack.gz'
239
238
  add_list 'bulk_import:upload_parts', %w[name files_], 'Upload or re-upload files into a bulk import session', 'bulk_import:upload_parts parts/* --parallel 4'
240
- add_list 'bulk_import:upload_parts2', %w[name files_], 'Upload or re-upload files into a bulk import session', 'bulk_import:upload_parts parts/* --parallel 4'
241
239
  add_list 'bulk_import:delete_part', %w[name id], 'Delete a uploaded file from a bulk import session', 'bulk_import:delete_part logs_201201 01h'
242
240
  add_list 'bulk_import:delete_parts', %w[name ids_], 'Delete uploaded files from a bulk import session', 'bulk_import:delete_parts logs_201201 01h 02h 03h'
243
241
  add_list 'bulk_import:perform', %w[name], 'Start to validate and convert uploaded files', 'bulk_import:perform logs_201201'
@@ -252,6 +250,7 @@ module List
252
250
  add_list 'import:create', %w[name db table], 'Create a new bulk import session to the the table', 'import:create logs_201201 example_db event_logs'
253
251
  add_list 'import:prepare', %w[files_], 'Convert files into part file format', 'import:prepare logs/*.csv --format csv --columns time,uid,price,count --time-column "time" -o parts/'
254
252
  add_list 'import:upload', %w[name files_], 'Upload or re-upload files into a bulk import session', 'import:upload parts/* --parallel 4'
253
+ add_list 'import:auto', %w[name files_], 'Upload files and automatically perform and commit the data', 'import:auto parts/* --parallel 4'
255
254
  add_list 'import:perform', %w[name], 'Start to validate and convert uploaded files', 'import:perform logs_201201'
256
255
  add_list 'import:error_records', %w[name], 'Show records which did not pass validations', 'import:error_records logs_201201'
257
256
  add_list 'import:commit', %w[name], 'Start to commit a performed bulk import session', 'import:commit logs_201201'
@@ -374,6 +373,8 @@ module List
374
373
  add_alias 'bulk_import', 'bulk_import:show'
375
374
  add_alias 'bulk_imports', 'bulk_import:list'
376
375
 
376
+ add_alias 'import', 'import:show'
377
+
377
378
  add_alias 'job', 'job:show'
378
379
  add_alias 'jobs', 'job:list'
379
380
  add_alias 'kill', 'job:kill'
@@ -426,7 +427,6 @@ module List
426
427
  add_guess 'show-job', 'job:show'
427
428
  add_guess 'show-jobs', 'job:list'
428
429
  add_guess 'server-status', 'server:status'
429
- add_alias 'import', 'import:upload'
430
430
 
431
431
  finishup
432
432
  end
@@ -42,7 +42,8 @@ Basic commands:
42
42
  table # create/delete/list/import/export/tail tables
43
43
  query # issue a query
44
44
  job # show/kill/list jobs
45
- bulk_import # manage bulk import sessions
45
+ import # manage bulk import sessions (Java based fast processing)
46
+ bulk_import # manage bulk import sessions (Old Ruby-based implementation)
46
47
  result # create/delete/list result URLs
47
48
 
48
49
  Additional commands:
data/lib/td/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.10.85'
3
+ VERSION = '0.10.86'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,34 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.85
5
- prerelease:
4
+ version: 0.10.86
6
5
  platform: ruby
7
6
  authors:
8
7
  - Treasure Data, Inc.
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-23 00:00:00.000000000 Z
11
+ date: 2013-08-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: msgpack
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.4.4
22
- - - ! '!='
20
+ - - '!='
23
21
  - !ruby/object:Gem::Version
24
22
  version: 0.5.0
25
- - - ! '!='
23
+ - - '!='
26
24
  - !ruby/object:Gem::Version
27
25
  version: 0.5.1
28
- - - ! '!='
26
+ - - '!='
29
27
  - !ruby/object:Gem::Version
30
28
  version: 0.5.2
31
- - - ! '!='
29
+ - - '!='
32
30
  - !ruby/object:Gem::Version
33
31
  version: 0.5.3
34
32
  - - <
@@ -37,21 +35,20 @@ dependencies:
37
35
  type: :runtime
38
36
  prerelease: false
39
37
  version_requirements: !ruby/object:Gem::Requirement
40
- none: false
41
38
  requirements:
42
- - - ! '>='
39
+ - - '>='
43
40
  - !ruby/object:Gem::Version
44
41
  version: 0.4.4
45
- - - ! '!='
42
+ - - '!='
46
43
  - !ruby/object:Gem::Version
47
44
  version: 0.5.0
48
- - - ! '!='
45
+ - - '!='
49
46
  - !ruby/object:Gem::Version
50
47
  version: 0.5.1
51
- - - ! '!='
48
+ - - '!='
52
49
  - !ruby/object:Gem::Version
53
50
  version: 0.5.2
54
- - - ! '!='
51
+ - - '!='
55
52
  - !ruby/object:Gem::Version
56
53
  version: 0.5.3
57
54
  - - <
@@ -60,7 +57,6 @@ dependencies:
60
57
  - !ruby/object:Gem::Dependency
61
58
  name: yajl-ruby
62
59
  requirement: !ruby/object:Gem::Requirement
63
- none: false
64
60
  requirements:
65
61
  - - ~>
66
62
  - !ruby/object:Gem::Version
@@ -68,7 +64,6 @@ dependencies:
68
64
  type: :runtime
69
65
  prerelease: false
70
66
  version_requirements: !ruby/object:Gem::Requirement
71
- none: false
72
67
  requirements:
73
68
  - - ~>
74
69
  - !ruby/object:Gem::Version
@@ -76,23 +71,20 @@ dependencies:
76
71
  - !ruby/object:Gem::Dependency
77
72
  name: hirb
78
73
  requirement: !ruby/object:Gem::Requirement
79
- none: false
80
74
  requirements:
81
- - - ! '>='
75
+ - - '>='
82
76
  - !ruby/object:Gem::Version
83
77
  version: 0.4.5
84
78
  type: :runtime
85
79
  prerelease: false
86
80
  version_requirements: !ruby/object:Gem::Requirement
87
- none: false
88
81
  requirements:
89
- - - ! '>='
82
+ - - '>='
90
83
  - !ruby/object:Gem::Version
91
84
  version: 0.4.5
92
85
  - !ruby/object:Gem::Dependency
93
86
  name: parallel
94
87
  requirement: !ruby/object:Gem::Requirement
95
- none: false
96
88
  requirements:
97
89
  - - ~>
98
90
  - !ruby/object:Gem::Version
@@ -100,7 +92,6 @@ dependencies:
100
92
  type: :runtime
101
93
  prerelease: false
102
94
  version_requirements: !ruby/object:Gem::Requirement
103
- none: false
104
95
  requirements:
105
96
  - - ~>
106
97
  - !ruby/object:Gem::Version
@@ -108,7 +99,6 @@ dependencies:
108
99
  - !ruby/object:Gem::Dependency
109
100
  name: td-client
110
101
  requirement: !ruby/object:Gem::Requirement
111
- none: false
112
102
  requirements:
113
103
  - - ~>
114
104
  - !ruby/object:Gem::Version
@@ -116,7 +106,6 @@ dependencies:
116
106
  type: :runtime
117
107
  prerelease: false
118
108
  version_requirements: !ruby/object:Gem::Requirement
119
- none: false
120
109
  requirements:
121
110
  - - ~>
122
111
  - !ruby/object:Gem::Version
@@ -124,7 +113,6 @@ dependencies:
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: td-logger
126
115
  requirement: !ruby/object:Gem::Requirement
127
- none: false
128
116
  requirements:
129
117
  - - ~>
130
118
  - !ruby/object:Gem::Version
@@ -132,7 +120,6 @@ dependencies:
132
120
  type: :runtime
133
121
  prerelease: false
134
122
  version_requirements: !ruby/object:Gem::Requirement
135
- none: false
136
123
  requirements:
137
124
  - - ~>
138
125
  - !ruby/object:Gem::Version
@@ -140,7 +127,6 @@ dependencies:
140
127
  - !ruby/object:Gem::Dependency
141
128
  name: rubyzip
142
129
  requirement: !ruby/object:Gem::Requirement
143
- none: false
144
130
  requirements:
145
131
  - - ~>
146
132
  - !ruby/object:Gem::Version
@@ -148,7 +134,6 @@ dependencies:
148
134
  type: :runtime
149
135
  prerelease: false
150
136
  version_requirements: !ruby/object:Gem::Requirement
151
- none: false
152
137
  requirements:
153
138
  - - ~>
154
139
  - !ruby/object:Gem::Version
@@ -156,7 +141,6 @@ dependencies:
156
141
  - !ruby/object:Gem::Dependency
157
142
  name: rake
158
143
  requirement: !ruby/object:Gem::Requirement
159
- none: false
160
144
  requirements:
161
145
  - - ~>
162
146
  - !ruby/object:Gem::Version
@@ -164,7 +148,6 @@ dependencies:
164
148
  type: :development
165
149
  prerelease: false
166
150
  version_requirements: !ruby/object:Gem::Requirement
167
- none: false
168
151
  requirements:
169
152
  - - ~>
170
153
  - !ruby/object:Gem::Version
@@ -172,7 +155,6 @@ dependencies:
172
155
  - !ruby/object:Gem::Dependency
173
156
  name: rspec
174
157
  requirement: !ruby/object:Gem::Requirement
175
- none: false
176
158
  requirements:
177
159
  - - ~>
178
160
  - !ruby/object:Gem::Version
@@ -180,7 +162,6 @@ dependencies:
180
162
  type: :development
181
163
  prerelease: false
182
164
  version_requirements: !ruby/object:Gem::Requirement
183
- none: false
184
165
  requirements:
185
166
  - - ~>
186
167
  - !ruby/object:Gem::Version
@@ -188,7 +169,6 @@ dependencies:
188
169
  - !ruby/object:Gem::Dependency
189
170
  name: simplecov
190
171
  requirement: !ruby/object:Gem::Requirement
191
- none: false
192
172
  requirements:
193
173
  - - ~>
194
174
  - !ruby/object:Gem::Version
@@ -196,7 +176,6 @@ dependencies:
196
176
  type: :development
197
177
  prerelease: false
198
178
  version_requirements: !ruby/object:Gem::Requirement
199
- none: false
200
179
  requirements:
201
180
  - - ~>
202
181
  - !ruby/object:Gem::Version
@@ -281,33 +260,26 @@ files:
281
260
  - td.gemspec
282
261
  homepage: http://treasure-data.com/
283
262
  licenses: []
263
+ metadata: {}
284
264
  post_install_message:
285
265
  rdoc_options: []
286
266
  require_paths:
287
267
  - lib
288
268
  required_ruby_version: !ruby/object:Gem::Requirement
289
- none: false
290
269
  requirements:
291
- - - ! '>='
270
+ - - '>='
292
271
  - !ruby/object:Gem::Version
293
272
  version: '0'
294
- segments:
295
- - 0
296
- hash: -2194512597141251482
297
273
  required_rubygems_version: !ruby/object:Gem::Requirement
298
- none: false
299
274
  requirements:
300
- - - ! '>='
275
+ - - '>='
301
276
  - !ruby/object:Gem::Version
302
277
  version: '0'
303
- segments:
304
- - 0
305
- hash: -2194512597141251482
306
278
  requirements: []
307
279
  rubyforge_project:
308
- rubygems_version: 1.8.23
280
+ rubygems_version: 2.0.2
309
281
  signing_key:
310
- specification_version: 3
282
+ specification_version: 4
311
283
  summary: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing
312
284
  test_files:
313
285
  - spec/file_reader/filter_spec.rb