soundcheck 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/bin/soundcheck CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'optparse'
3
+ require 'pty'
3
4
  require 'soundcheck'
4
5
 
5
6
  options = {}
@@ -24,13 +25,27 @@ option_parser = OptionParser.new do |opts|
24
25
  end
25
26
  end
26
27
 
28
+ # Option Parser will eat elements of ARGV that it recognizes
27
29
  option_parser.parse!(ARGV)
28
- soundcheck = Soundcheck.new(ARGV[0], options)
30
+
31
+ # Assume that the rest of ARGV are filenames
32
+ soundcheck = Soundcheck.new(ARGV, options)
29
33
 
30
34
  begin
31
- cmd = soundcheck.command_to_run
32
- puts cmd
33
- exec cmd
35
+ soundcheck.commands_to_run.each do |cmd|
36
+ puts "Executing #{cmd}\n\n"
37
+
38
+ PTY.spawn(cmd) do |read_stream, write_stream, pid|
39
+ begin
40
+ while chars = read_stream.read(1)
41
+ print chars
42
+ end
43
+ rescue Errno::EIO
44
+ end
45
+ end
46
+
47
+ puts "\n\n\n"
48
+ end
34
49
  rescue Project::UnknownLanguage
35
50
  puts "Error: Cannot detect the programming language for this project."
36
51
  exit 1
@@ -1,4 +1,5 @@
1
1
  require 'active_support/concern'
2
+ require 'soundcheck/logging'
2
3
 
3
4
  module Frameworks
4
5
  module Base
@@ -16,6 +17,7 @@ module Frameworks
16
17
 
17
18
  module InstanceMethods
18
19
  def filter_with(args, filters)
20
+ logger.debug "Filtering #{args.inspect}"
19
21
  args.select do |arg|
20
22
  filters.any? do |key, value|
21
23
  case value
data/lib/soundcheck.rb CHANGED
@@ -3,12 +3,12 @@ require 'soundcheck/project'
3
3
 
4
4
  class Soundcheck
5
5
  attr_accessor :project
6
- attr_accessor :path
6
+ attr_accessor :paths
7
7
  attr_accessor :options
8
8
 
9
- def initialize(path = "spec", options = {})
9
+ def initialize(paths, options = {})
10
10
  self.project = Project.new(Dir.pwd)
11
- self.path = path
11
+ self.paths = paths
12
12
  self.options = options
13
13
 
14
14
  logger.level = Logger::DEBUG if options[:verbose]
@@ -18,8 +18,17 @@ class Soundcheck
18
18
  def command_to_run
19
19
  project.frameworks.each do |framework|
20
20
  framework.options = options
21
- command = framework.command(*path)
21
+ command = framework.command(*paths)
22
22
  return command if command
23
23
  end
24
24
  end
25
+
26
+ def commands_to_run
27
+ commands = project.frameworks.map do |framework|
28
+ framework.options = options
29
+ framework.command(*paths)
30
+ end.compact
31
+ logger.debug "Commands to run: #{commands.inspect}"
32
+ commands
33
+ end
25
34
  end
data/soundcheck.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "soundcheck"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marten Veldthuis"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soundcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &8641460 !ruby/object:Gem::Requirement
16
+ requirement: &21025260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8641460
24
+ version_requirements: *21025260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &8640200 !ruby/object:Gem::Requirement
27
+ requirement: &21024640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *8640200
35
+ version_requirements: *21024640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &8656340 !ruby/object:Gem::Requirement
38
+ requirement: &21023920 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *8656340
46
+ version_requirements: *21023920
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &8655680 !ruby/object:Gem::Requirement
49
+ requirement: &21023120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *8655680
57
+ version_requirements: *21023120
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cucumber
60
- requirement: &8654740 !ruby/object:Gem::Requirement
60
+ requirement: &21022460 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *8654740
68
+ version_requirements: *21022460
69
69
  description: Soundcheck tries to figure out what kind of project you're working on,
70
70
  what test file you're trying to run, and what the fastest way is to run that.
71
71
  email: marten@veldthuis.com
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  segments:
142
142
  - 0
143
- hash: -2863149779894878725
143
+ hash: -2800419404506608249
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements: