rubyc 0.2.0 → 0.3.0

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
+ SHA256:
3
+ metadata.gz: 129a515517a551a55fb60a6c2af06819da814828e9dd9a4328532e27a90553e3
4
+ data.tar.gz: 6d5dff8eb1ab16c468045138b7b4a011755abc0b62ef4240cf55ebffb27d35c3
5
+ SHA512:
6
+ metadata.gz: ebcf9c8df0fbdcd5e5b59f075f288773da129a0588dd13dadb4d0b82a860aed3c88ed92df33cae58b0ba22303ae8261179f0be04f70072d0d24a9e4ac432710a
7
+ data.tar.gz: 60138e7cacccc60efd625f81b770d30b21932953801ea68f3f1cfb364d8adfc78328f6791c7eded23f1038243755278e7b7736d37f7ab2792d6656b9683f45b5
data/Gemfile CHANGED
@@ -18,6 +18,6 @@ group :development do
18
18
  gem 'pry'
19
19
  gem 'guard'
20
20
  gem 'guard-minitest'
21
- gem 'rb-fsevent'
22
- gem 'ruby_gntp'
21
+ gem 'rb-fsevent', :require => false
22
+ gem 'growl'
23
23
  end
data/Gemfile.lock CHANGED
@@ -1,64 +1,104 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubyc (0.2.0)
4
+ rubyc (0.3.0)
5
5
  thor (~> 0.15)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- archive-tar-minitar (0.5.2)
11
- aruba (0.4.11)
12
- childprocess (>= 0.2.3)
13
- cucumber (>= 1.1.1)
14
- ffi (>= 1.0.11)
15
- rspec (>= 2.7.0)
16
- builder (3.1.3)
17
- childprocess (0.3.5)
18
- ffi (~> 1.0, >= 1.0.6)
19
- coderay (1.0.7)
20
- colorize (0.5.8)
21
- columnize (0.3.6)
22
- cucumber (1.2.1)
23
- builder (>= 2.1.2)
24
- diff-lcs (>= 1.1.3)
25
- gherkin (~> 2.11.0)
26
- json (>= 1.4.6)
27
- diff-lcs (1.1.3)
28
- ffi (1.1.5)
29
- gherkin (2.11.2)
30
- json (>= 1.4.6)
31
- guard (1.5.4)
32
- listen (>= 0.4.2)
33
- lumberjack (>= 1.0.2)
34
- pry (>= 0.9.10)
35
- thor (>= 0.14.6)
36
- guard-minitest (0.5.0)
37
- guard (>= 0.4)
38
- json (1.7.5)
39
- linecache (0.46)
40
- rbx-require-relative (> 0.0.4)
10
+ archive-tar-minitar (0.8)
11
+ minitar (~> 0.8)
12
+ minitar-cli (~> 0.8)
13
+ aruba (0.14.14)
14
+ childprocess (>= 0.6.3, < 4.0.0)
15
+ contracts (~> 0.9)
16
+ cucumber (>= 1.3.19)
17
+ ffi (~> 1.9)
18
+ rspec-expectations (>= 2.99)
19
+ thor (>= 0.19, < 2.0)
20
+ builder (3.2.4)
21
+ childprocess (3.0.0)
22
+ coderay (1.1.3)
23
+ colorize (0.8.1)
24
+ columnize (0.9.0)
25
+ contracts (0.16.1)
26
+ cucumber (8.0.0)
27
+ builder (~> 3.2, >= 3.2.4)
28
+ cucumber-ci-environment (~> 9.0, >= 9.0.4)
29
+ cucumber-core (~> 11.0, >= 11.0.0)
30
+ cucumber-cucumber-expressions (~> 15.1, >= 15.1.1)
31
+ cucumber-gherkin (~> 23.0, >= 23.0.1)
32
+ cucumber-html-formatter (~> 19.1, >= 19.1.0)
33
+ cucumber-messages (~> 18.0, >= 18.0.0)
34
+ diff-lcs (~> 1.5, >= 1.5.0)
35
+ mime-types (~> 3.4, >= 3.4.1)
36
+ multi_test (~> 1.1, >= 1.1.0)
37
+ sys-uname (~> 1.2, >= 1.2.2)
38
+ cucumber-ci-environment (9.0.4)
39
+ cucumber-core (11.0.0)
40
+ cucumber-gherkin (~> 23.0, >= 23.0.1)
41
+ cucumber-messages (~> 18.0, >= 18.0.0)
42
+ cucumber-tag-expressions (~> 4.1, >= 4.1.0)
43
+ cucumber-cucumber-expressions (15.2.0)
44
+ cucumber-gherkin (23.0.1)
45
+ cucumber-messages (~> 18.0, >= 18.0.0)
46
+ cucumber-html-formatter (19.2.0)
47
+ cucumber-messages (~> 18.0, >= 18.0.0)
48
+ cucumber-messages (18.0.0)
49
+ cucumber-tag-expressions (4.1.0)
50
+ diff-lcs (1.5.0)
51
+ ffi (1.15.5)
52
+ formatador (1.1.0)
53
+ growl (1.0.3)
54
+ guard (2.18.0)
55
+ formatador (>= 0.2.4)
56
+ listen (>= 2.7, < 4.0)
57
+ lumberjack (>= 1.0.12, < 2.0)
58
+ nenv (~> 0.1)
59
+ notiffany (~> 0.0)
60
+ pry (>= 0.13.0)
61
+ shellany (~> 0.0)
62
+ thor (>= 0.18.1)
63
+ guard-compat (1.2.1)
64
+ guard-minitest (2.4.6)
65
+ guard-compat (~> 1.2)
66
+ minitest (>= 3.0)
67
+ hashie (5.0.0)
68
+ linecache (1.3.1)
41
69
  linecache19 (0.5.12)
42
70
  ruby_core_source (>= 0.1.4)
43
- listen (0.5.3)
44
- lumberjack (1.0.2)
45
- method_source (0.8)
46
- minitest (3.4.0)
47
- pry (0.9.10)
48
- coderay (~> 1.0.5)
49
- method_source (~> 0.8)
50
- slop (~> 3.3.1)
51
- rake (0.9.2.2)
52
- rb-fsevent (0.9.2)
53
- rbx-require-relative (0.0.9)
54
- rspec (2.11.0)
55
- rspec-core (~> 2.11.0)
56
- rspec-expectations (~> 2.11.0)
57
- rspec-mocks (~> 2.11.0)
58
- rspec-core (2.11.1)
59
- rspec-expectations (2.11.3)
60
- diff-lcs (~> 1.1.3)
61
- rspec-mocks (2.11.2)
71
+ listen (3.7.1)
72
+ rb-fsevent (~> 0.10, >= 0.10.3)
73
+ rb-inotify (~> 0.9, >= 0.9.10)
74
+ lumberjack (1.2.8)
75
+ method_source (1.0.0)
76
+ mime-types (3.4.1)
77
+ mime-types-data (~> 3.2015)
78
+ mime-types-data (3.2022.0105)
79
+ minitar (0.8)
80
+ minitar-cli (0.8)
81
+ minitar (~> 0.8.0)
82
+ powerbar (~> 1.0)
83
+ minitest (5.16.1)
84
+ multi_test (1.1.0)
85
+ nenv (0.3.0)
86
+ notiffany (0.1.3)
87
+ nenv (~> 0.1)
88
+ shellany (~> 0.0)
89
+ powerbar (1.0.18)
90
+ hashie (>= 1.1.0)
91
+ pry (0.14.1)
92
+ coderay (~> 1.1)
93
+ method_source (~> 1.0)
94
+ rake (13.0.6)
95
+ rb-fsevent (0.11.1)
96
+ rb-inotify (0.10.1)
97
+ ffi (~> 1.0)
98
+ rspec-expectations (3.11.0)
99
+ diff-lcs (>= 1.2.0, < 2.0)
100
+ rspec-support (~> 3.11.0)
101
+ rspec-support (3.11.0)
62
102
  ruby-debug (0.10.4)
63
103
  columnize (>= 0.1)
64
104
  ruby-debug-base (~> 0.10.4.0)
@@ -74,17 +114,20 @@ GEM
74
114
  ruby-debug-base19 (>= 0.11.19)
75
115
  ruby_core_source (0.1.5)
76
116
  archive-tar-minitar (>= 0.5.2)
77
- ruby_gntp (0.3.4)
78
- slop (3.3.3)
79
- thor (0.16.0)
117
+ shellany (0.0.1)
118
+ sys-uname (1.2.2)
119
+ ffi (~> 1.1)
120
+ thor (0.20.3)
80
121
 
81
122
  PLATFORMS
82
123
  ruby
124
+ x86_64-darwin-19
83
125
 
84
126
  DEPENDENCIES
85
127
  aruba
86
- bundler (~> 1.0)
128
+ bundler (~> 2.0)
87
129
  colorize
130
+ growl
88
131
  guard
89
132
  guard-minitest
90
133
  minitest
@@ -93,5 +136,7 @@ DEPENDENCIES
93
136
  rb-fsevent
94
137
  ruby-debug (>= 0.10.3)
95
138
  ruby-debug19
96
- ruby_gntp
97
139
  rubyc!
140
+
141
+ BUNDLED WITH
142
+ 2.3.17
data/Rakefile CHANGED
@@ -6,11 +6,20 @@ require 'rake/testtask'
6
6
  require 'cucumber'
7
7
  require 'cucumber/rake/task'
8
8
 
9
- Rake::TestTask.new do |t|
10
- t.pattern = "spec/*_spec.rb"
11
- t.libs << 'spec'
9
+ require "minitest/test_task"
10
+
11
+ Minitest::TestTask.create # named test, sensible defaults
12
+
13
+ # or more explicitly:
14
+
15
+ Minitest::TestTask.create(:test) do |t|
16
+ t.libs << "spec"
17
+ t.libs << "lib"
18
+ t.warning = false
19
+ t.test_globs = ["test/**/*_spec.rb"]
12
20
  end
13
21
 
22
+
14
23
  Cucumber::Rake::Task.new(:features) do |t|
15
24
  t.fork = false
16
25
  end
data/lib/rubyc/cli.rb CHANGED
@@ -1,33 +1,35 @@
1
- require 'yaml'
2
- require 'thor'
3
- require 'rubyc/core_extensions'
1
+ require "yaml"
2
+ require "thor"
3
+ require "rubyc/core_extensions"
4
4
 
5
5
  module Rubyc
6
6
  class CLI < Thor
7
- class_option :require, :aliases => '-r'
8
- class_option :sync, :type => :boolean, :default => false, :aliases => '-s', :banner => 'Synchronize stdout'
7
+ class_option :require, :aliases => "-r"
8
+ class_option :sync, :type => :boolean, :default => false, :aliases => "-s", :banner => "Synchronize stdout"
9
9
 
10
10
  def initialize(*args)
11
11
  super
12
12
  libs = options[:require] ? options[:require].strip.split(":") : []
13
- libs.each {|lib| require lib}
13
+ libs.each { |lib| require lib }
14
14
  $stdout.sync = options[:sync]
15
15
  end
16
-
16
+
17
17
  def help(*args)
18
- super *args
18
+ super(*args)
19
19
  end
20
20
 
21
21
  desc "map BLOCK", "Enumerable#map"
22
- long_desc "THIS IS A LONG DESCRIPTION"
22
+ long_desc "THIS IS A LONG DESCRIPTION"
23
+
23
24
  def map(code)
24
- proc = eval( "Proc.new{|line,index| l = line; lnum = index + 1;#{code}}" )
25
+ proc = eval("Proc.new{|line,index| l = line; lnum = index + 1;#{code}}")
25
26
  $stdin.each_line.each_with_index do |line, index|
26
27
  puts proc.call(line.chomp, index).to_s
27
28
  end
28
29
  end
29
30
 
30
31
  desc "sum BLOCK", "Active Support Enumerable#sum"
32
+
31
33
  def sum(code = nil)
32
34
  code ||= "line"
33
35
  proc = eval("Proc.new{|line| l = line; #{code}}")
@@ -38,22 +40,25 @@ module Rubyc
38
40
  end
39
41
 
40
42
  desc "select BLOCK", "Enumerable#select"
43
+
41
44
  def select(code)
42
- proc = eval( "Proc.new{|line,index| l = line; lnum = index + 1;#{code}}" )
45
+ proc = eval("Proc.new{|line,index| l = line; lnum = index + 1;#{code}}")
43
46
  $stdin.each_line.each_with_index do |line, index|
44
47
  puts line if proc.call(line.chomp, index)
45
48
  end
46
49
  end
47
50
 
48
51
  desc "reject BLOCK", "Enumerable#reject"
52
+
49
53
  def reject(code)
50
- proc = eval( "Proc.new{|line,index| l = line; lnum = index + 1;#{code}}" )
54
+ proc = eval("Proc.new{|line,index| l = line; lnum = index + 1;#{code}}")
51
55
  $stdin.each_line.each_with_index do |line, index|
52
56
  puts line unless proc.call(line.chomp, index)
53
57
  end
54
58
  end
55
-
59
+
56
60
  desc "count_by BLOCK", "Count the number of lines that have the same property. The property is defined by the return value of the given the block"
61
+
57
62
  def count_by(code = nil)
58
63
  code ||= "line"
59
64
  proc = eval("Proc.new{|line| l = line; #{code}}")
@@ -64,6 +69,7 @@ module Rubyc
64
69
  end
65
70
 
66
71
  desc "sort_by BLOCK", "Enumerable#sort_by"
72
+
67
73
  def sort_by(code = nil)
68
74
  code ||= "line"
69
75
  proc = eval("Proc.new{|line| l = line; #{code}}")
@@ -74,6 +80,7 @@ module Rubyc
74
80
  end
75
81
 
76
82
  desc "grep BLOCK", "Enumerable#grep"
83
+
77
84
  def grep(pattern, code = nil)
78
85
  pattern = eval(pattern)
79
86
  proc = code ? eval("Proc.new{|line| l = line; #{code}}") : nil
@@ -81,6 +88,7 @@ module Rubyc
81
88
  end
82
89
 
83
90
  desc "scan MATCHER BLOCK", "String#scan"
91
+
84
92
  def scan(pattern, code = nil)
85
93
  pattern = eval(pattern)
86
94
  proc = code ? eval("Proc.new{|*match| m = match; #{code}}") : nil
@@ -89,11 +97,13 @@ module Rubyc
89
97
  end
90
98
 
91
99
  desc "uniq", "Enumerable#uniq"
100
+
92
101
  def uniq
93
102
  puts $stdin.to_a.uniq
94
103
  end
95
104
 
96
105
  desc "uniq_by BLOCK", "TODO"
106
+
97
107
  def uniq_by(code = nil)
98
108
  code ||= "line"
99
109
  proc = eval("Proc.new{|line| l = line; #{code}}")
@@ -104,13 +114,15 @@ module Rubyc
104
114
  end
105
115
 
106
116
  desc "compact", "Remove empty lines"
117
+
107
118
  def compact
108
- $stdin.each{ |line| puts line if line.chomp! != ""}
119
+ $stdin.each { |line| puts line if line.chomp! != "" }
109
120
  end
110
121
 
111
122
  desc "merge NB_LINES [SEPARATOR]", "Merge NB_LINES consecutive lines using SEPARATOR. If SEPARATOR is not given \',\' is used"
123
+
112
124
  def merge(nb_lines, sep = ",")
113
- $stdin.each_slice(nb_lines.to_i){|chunk| puts chunk.map{|elem| elem.strip}.join(sep)}
125
+ $stdin.each_slice(nb_lines.to_i) { |chunk| puts chunk.map { |elem| elem.strip }.join(sep) }
114
126
  end
115
127
  end
116
128
  end
@@ -8,29 +8,11 @@ module Enumerable
8
8
  end
9
9
  end
10
10
 
11
- # This method was borrowed from ActiveSupport code
12
- def group_by
13
- self.inject({}) do |memo, elem|
14
- key = yield elem
15
- memo[key] ||= []
16
- memo[key] << elem
17
- memo
18
- end
19
- end
20
-
21
- # File activesupport/lib/active_support/core_ext/enumerable.rb, line 57
22
- def sum(identity = 0, &block)
23
- if block_given?
24
- map(&block).sum(identity)
25
- else
26
- inject { |sum, element| sum + element } || identity
27
- end
28
- end
29
-
30
11
  def uniq_by
31
- each_with_object({}) do |obj, memo|
12
+ each_with_index.inject({}) do |memo, (obj, index)|
32
13
  val, data = yield obj
33
14
  memo[val] ||= data
15
+ memo
34
16
  end.values
35
17
  end
36
18
  end
data/lib/rubyc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rubyc
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/rubyc.gemspec CHANGED
@@ -7,15 +7,15 @@ Gem::Specification.new do |s|
7
7
  s.version = Rubyc::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Martin Chabot"]
10
+ s.licenses = ["MIT"]
10
11
  s.email = ["chabotm@gmail.com"]
11
12
  s.homepage = "https://github.com/martinos/rubyc"
12
13
  s.summary = %q{Adds Ruby's powers to the command line}
13
14
  s.description = %q{Adds Ruby's powers to the command line}
14
- s.rubyforge_project = "rubyc"
15
15
 
16
16
  s.add_dependency "thor", "~> 0.15"
17
17
  s.add_development_dependency 'rake'
18
- s.add_development_dependency "bundler", "~> 1.0"
18
+ s.add_development_dependency "bundler", "~> 2.0"
19
19
  s.add_development_dependency 'minitest'
20
20
  s.add_development_dependency 'aruba'
21
21
  s.add_development_dependency 'colorize'
data/spec/cli_spec.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'spec_helper'
2
- require 'rubyc/cli'
1
+ require "spec_helper"
2
+ require "rubyc/cli"
3
3
 
4
4
  include SpecHelper
5
5
 
@@ -12,94 +12,94 @@ describe "A rubyc cli" do
12
12
  out_str = local_io("first\nsecond") do
13
13
  @cli.map('"LineNum=#{lnum} Index=#{index}: #{l.upcase}"')
14
14
  end
15
- out_str.must_equal "LineNum=1 Index=0: FIRST\nLineNum=2 Index=1: SECOND\n"
15
+ _(out_str).must_equal "LineNum=1 Index=0: FIRST\nLineNum=2 Index=1: SECOND\n"
16
16
  end
17
17
 
18
18
  it "should select line from stdin and send it to stdout" do
19
19
  out_str = local_io("John Doe\nBlack Jack\nDr Dolittle\nCracker Jack") do
20
- @cli.select('l =~ /Jack/ && lnum == 2 && index == 1')
20
+ @cli.select("l =~ /Jack/ && lnum == 2 && index == 1")
21
21
  end
22
- out_str.must_equal "Black Jack\n"
22
+ _(out_str).must_equal "Black Jack\n"
23
23
  end
24
24
 
25
25
  it "should reject line from stdin and send it to stdout" do
26
26
  out_str = local_io("John Doe\nBlack Jack\nDr Dolittle\nCracker Jack") do
27
- @cli.reject('l =~ /Jack/ && lnum == 2 && index == 1')
27
+ @cli.reject("l =~ /Jack/ && lnum == 2 && index == 1")
28
28
  end
29
- out_str.must_equal "John Doe\nDr Dolittle\nCracker Jack\n"
29
+ _(out_str).must_equal "John Doe\nDr Dolittle\nCracker Jack\n"
30
30
  end
31
31
 
32
32
  it "should sum line from stdin and send it to stdout" do
33
33
  out_str = local_io("1\n2\nthird\n4") do
34
- @cli.sum('l.to_i * 2')
34
+ @cli.sum("l.to_i * 2")
35
35
  end
36
- out_str.must_equal "14\n"
36
+ _(out_str).must_equal "14\n"
37
37
  end
38
38
 
39
39
  it "should sort by stdin and send the result to stdout" do
40
40
  out_str = local_io("a\nbbb\ncc\ndddd") do
41
- @cli.sort_by('l.length')
41
+ @cli.sort_by("l.length")
42
42
  end
43
- out_str.must_equal "a\ncc\nbbb\ndddd\n"
43
+ _(out_str).must_equal "a\ncc\nbbb\ndddd\n"
44
44
  end
45
45
 
46
46
  it "should grep stdin and send the result to stdout" do
47
47
  out_str = local_io("bbbb\nbbb\ncc\ndddd") do
48
- @cli.grep('/^b/', 'l.upcase')
48
+ @cli.grep("/^b/", "l.upcase")
49
49
  end
50
- out_str.must_equal "BBBB\nBBB\n"
50
+ _(out_str).must_equal "BBBB\nBBB\n"
51
51
  end
52
52
 
53
53
  it "should count_by an algorithm and output to stdout" do
54
54
  out_str = local_io("bbbb\nbbb\ncc\ndddd") do
55
- @cli.count_by('l =~ /^(..)/;$1')
56
- end
57
- expected = {"bb" => 2, "cc" => 1, "dd" => 1}
55
+ @cli.count_by("l =~ /^(..)/;$1")
56
+ end
57
+ expected = { "bb" => 2, "cc" => 1, "dd" => 1 }
58
58
 
59
- YAML.load(out_str).must_equal expected
59
+ _(YAML.load(out_str)).must_equal expected
60
60
  end
61
61
 
62
62
  it "should remove empty lines from stdin and output to stdout" do
63
- out_str = local_io("bbbb\n\ncc\n") do
63
+ out_str = local_io("bbbb\n\ncc\n") do
64
64
  @cli.compact
65
65
  end
66
- out_str.must_equal "bbbb\ncc\n"
66
+ _(out_str).must_equal "bbbb\ncc\n"
67
67
  end
68
68
 
69
69
  it "should keep unique lines from stdin and output them to stdout" do
70
70
  out_str = local_io("1\n2\n2\n3") do
71
71
  @cli.uniq
72
72
  end
73
- out_str.must_equal "1\n2\n3\n"
73
+ _(out_str).must_equal "1\n2\n3\n"
74
74
  end
75
75
 
76
76
  it "should keep unique records grouped by a certain algorithm" do
77
77
  out_str = local_io("aaaCoco\nbbbMomo\naaaBato\nbbbToto") do
78
- @cli.uniq_by('[l[0,3], l[3..-1]]')
78
+ @cli.uniq_by("[l[0,3], l[3..-1]]")
79
79
  end
80
- out_str.must_equal "Coco\nMomo\n"
80
+ # We test this way since uniq_by uses hashes and on Ruby 1.8.7 hashes are not ordered
81
+ out_array = out_str.split("\n").sort
82
+ _(out_array).must_equal ["Coco", "Momo"]
81
83
  end
82
84
 
83
85
  it "should merge lines in group of n output them to stdout" do
84
86
  out_str = local_io("1\n2\n3\n4\n5\n6\n7\n8") do
85
87
  @cli.merge(3, ",")
86
88
  end
87
- out_str.must_equal "1,2,3\n4,5,6\n7,8\n"
89
+ _(out_str).must_equal "1,2,3\n4,5,6\n7,8\n"
88
90
  end
89
91
 
90
-
91
92
  it "should merge lines in group of n output them to stdout" do
92
93
  out_str = local_io("1\n2\n3\n4\n5\n6\n7\n8") do
93
94
  @cli.merge(3, ",")
94
95
  end
95
- out_str.must_equal "1,2,3\n4,5,6\n7,8\n"
96
+ _(out_str).must_equal "1,2,3\n4,5,6\n7,8\n"
96
97
  end
97
98
 
98
99
  it "should merge lines in group of n output them to stdout" do
99
100
  out_str = local_io("1\n2\n3\n4\n5\n6\n7\n8") do
100
101
  @cli.merge(3, ",")
101
102
  end
102
- out_str.must_equal "1,2,3\n4,5,6\n7,8\n"
103
+ _(out_str).must_equal "1,2,3\n4,5,6\n7,8\n"
103
104
  end
104
105
  end
105
-
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,13 @@
1
- $:.unshift File.expand_path('..', __FILE__)
2
- $:.unshift File.expand_path('../../lib', __FILE__)
3
- ROOT_PATH = File.expand_path('../..', __FILE__)
4
- require 'rubyc'
5
- require 'minitest/spec'
6
- require 'minitest/autorun'
7
- require 'rubyc/colorize_stack'
1
+ $:.unshift File.expand_path("..", __FILE__)
2
+ $:.unshift File.expand_path("../../lib", __FILE__)
3
+ ROOT_PATH = File.expand_path("../..", __FILE__)
4
+ require "rubyc"
5
+ require "minitest/spec"
6
+ require "minitest/autorun"
8
7
 
9
8
  module SpecHelper
10
9
  def local_io(in_str)
11
- old_stdin, old_stdout = $stdin, $stdout
10
+ old_stdin, old_stdout = $stdin, $stdout
12
11
  $stdin = StringIO.new(in_str)
13
12
  $stdout = StringIO.new
14
13
  yield
@@ -17,4 +16,3 @@ module SpecHelper
17
16
  out_str
18
17
  end
19
18
  end
20
- MiniTest::Unit.output.extend MiniTest::ColorizeStack
metadata CHANGED
@@ -1,110 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Martin Chabot
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-21 00:00:00.000000000 Z
11
+ date: 2022-06-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: thor
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.15'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0.15'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bundler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '1.0'
47
+ version: '2.0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '1.0'
54
+ version: '2.0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: minitest
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: aruba
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: colorize
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  description: Adds Ruby's powers to the command line
@@ -115,7 +102,7 @@ executables:
115
102
  extensions: []
116
103
  extra_rdoc_files: []
117
104
  files:
118
- - .gitignore
105
+ - ".gitignore"
119
106
  - Gemfile
120
107
  - Gemfile.lock
121
108
  - Guardfile
@@ -132,42 +119,33 @@ files:
132
119
  - features/support/env.rb
133
120
  - lib/rubyc.rb
134
121
  - lib/rubyc/cli.rb
135
- - lib/rubyc/colorize_stack.rb
136
122
  - lib/rubyc/core_extensions.rb
137
123
  - lib/rubyc/version.rb
138
124
  - rubyc.gemspec
139
125
  - spec/cli_spec.rb
140
- - spec/colorize_stack_spec.rb
141
126
  - spec/spec_helper.rb
142
127
  homepage: https://github.com/martinos/rubyc
143
- licenses: []
144
- post_install_message:
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
131
+ post_install_message:
145
132
  rdoc_options: []
146
133
  require_paths:
147
134
  - lib
148
135
  required_ruby_version: !ruby/object:Gem::Requirement
149
- none: false
150
136
  requirements:
151
- - - ! '>='
137
+ - - ">="
152
138
  - !ruby/object:Gem::Version
153
139
  version: '0'
154
- segments:
155
- - 0
156
- hash: -3499535431891997109
157
140
  required_rubygems_version: !ruby/object:Gem::Requirement
158
- none: false
159
141
  requirements:
160
- - - ! '>='
142
+ - - ">="
161
143
  - !ruby/object:Gem::Version
162
144
  version: '0'
163
- segments:
164
- - 0
165
- hash: -3499535431891997109
166
145
  requirements: []
167
- rubyforge_project: rubyc
168
- rubygems_version: 1.8.24
169
- signing_key:
170
- specification_version: 3
146
+ rubygems_version: 3.1.2
147
+ signing_key:
148
+ specification_version: 4
171
149
  summary: Adds Ruby's powers to the command line
172
150
  test_files:
173
151
  - features/fixtures/file1.csv
@@ -178,5 +156,4 @@ test_files:
178
156
  - features/step_definitions/rubyc_steps.rb
179
157
  - features/support/env.rb
180
158
  - spec/cli_spec.rb
181
- - spec/colorize_stack_spec.rb
182
159
  - spec/spec_helper.rb
@@ -1,37 +0,0 @@
1
- module MiniTest
2
- # http://blog.macromates.com/2007/the-textmate-url-scheme/
3
- module ColorizeStack
4
- def write(str = "")
5
- str.each_line do |line|
6
- super(colorize_line(line))
7
- end
8
- end
9
-
10
- def colorize_line(line)
11
- red = "\e[31m"
12
- clear = "\e[0m"
13
- green = "\e[32m"
14
- blue = "\e[34m"
15
- magenta = "\e[35m"
16
- clear = "\e[0m"
17
- # test_0001_should_map_stdin_to_stdout(A rubyc cli) [./spec/cli_spec.rb:16]:
18
- # /Users/martinchabot/dev/my_gems/rubyc/spec/cli_spec.rb:16:in `test_0001_should_map_stdin_to_stdout'
19
- url_regex = /(.*?)([.\w\/]*.rb):(\d+)(.*)/
20
- if line =~ url_regex
21
- prefix, file_name, line_number, suffix = $1, $2, $3, $4
22
- if File.exist? file_name
23
- full_path = File.expand_path(file_name)
24
- app_trace = full_path.match(Dir.pwd) && full_path !~ /vendor/
25
- new_line = "#{prefix}#{blue}txmt://open?url=file://#{File.dirname(full_path)}/#{clear}#{red if app_trace }#{File.basename(full_path)}#{clear if app_trace}&line=#{line_number}#{suffix}\n"
26
- else
27
- new_line = line
28
- end
29
- else
30
- new_line = line
31
- end
32
- end
33
- end
34
- end
35
-
36
-
37
-
@@ -1,47 +0,0 @@
1
- require 'spec_helper'
2
- require 'stringio'
3
-
4
-
5
- describe MiniTest::ColorizeStack do
6
- it 'shoud colorize IO' do
7
- str = <<EOF
8
- test_0003_should_return_the_value_from_on_key(AProductionBafFileSpec::AStructureSpec):
9
- RuntimeError: THIS IS A STACKTRACE TEST
10
- ./lib/rubyc/colorize_stack.rb:19:in `extract_data_from_raw'
11
- ./lib/rubyc/colorize_stack.rb:9:in `initialize'
12
- ./lib/rubyc/colorize_stack.rb:44:in `new'
13
- ./lib/rubyc/colorize_stack.rb:44:in `parse'
14
- ./lib/rubyc/core_extensions.rb:18:in `parse'
15
- ./lib/rubyc/core_extensions.rb:17:in `map'
16
- ./lib/rubyc/core_extensions.rb:17:in `parse'
17
- ./lib/rubyc/core_extensions.rb:26:in `parse'
18
- ./lib/rubyc/core_extensions.rb:39:in `scanned_string'
19
- ./lib/rubyc/core_extensions.rb:16:in `parse'
20
- ./lib/rubyc/core_extensions.rb:27:in `read'
21
- ./spec/spec_helper.rb:8
22
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/spec.rb:118:in `instance_eval'
23
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/spec.rb:118:in `setup'
24
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:713:in `run'
25
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:675:in `run_test_suites'
26
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:669:in `each'
27
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:669:in `run_test_suites'
28
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:668:in `each'
29
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:668:in `run_test_suites'
30
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:632:in `run'
31
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352/gems/minitest-1.7.2/lib/minitest/unit.rb:524:in `autorun'
32
- /Users/martinos/.rvm/gems/ruby-1.8.7-p352@global/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5
33
-
34
- 5 tests, 0 assertions, 0 failures, 5 errors, 0 skips
35
- EOF
36
- out = StringIO.new
37
- out.extend MiniTest::ColorizeStack
38
- out.write(str)
39
- str = out.string
40
- red = "\e\\[31m"
41
- clear = "\e\\[0m"
42
- green = "\e\\[32m"
43
- blue = "\e\\[34m"
44
- magenta = "\e\\[35m"
45
- str.must_match %r{txmt://open\?url=file:///(.*)rubyc/lib/rubyc/(.*)colorize_stack.rb(.*)line=19:in `extract_data_from_raw}
46
- end
47
- end