td 0.10.85 → 0.10.86

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.
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