starting_blocks 0.7.0 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bcf8154756b515745dae7a48e05c81c3041389c0
4
- data.tar.gz: 5ab2dc1754dc57e4029663d07e3b16508a11e550
3
+ metadata.gz: 8bedc7d456d9b28ecf38984623ec989cebebb7b8
4
+ data.tar.gz: f69e0f6ee97a803daeff7d99a09ed32c1bb816fc
5
5
  SHA512:
6
- metadata.gz: fec39cb5a526178474b8c15eea9c658b033332c4ce8b3426ece230bb23872a82b4ed7bbb24d978e49c1a999b97823b7f18f66679f6381eff07030699d8b9bc51
7
- data.tar.gz: b7c64b7eb0f84c5f387c7cca05757157193cf5b71617e44d6bbaa14f8b5cf0caec9bb208f55b20abc8cce790fbec012feb1c778a1cf8c1bd55f19196b862d8bf
6
+ metadata.gz: 3b3b23afd3633ecd7b6c43e67530cc23849f4ccc047d78835799f333043f0c4b6de8685aac98eae7a018a260c31786d32e9ddc2f1c96aa1f4a2d1132bfee07b5
7
+ data.tar.gz: 75e06939b7609d64cb7a87d54eaeff818390bd8f739b04d62be5300446ec871140aeec5d1f32bf1683ffde44901cfd710f930ccb10ec60191980279669ed94a6
data/bin/sb CHANGED
@@ -1,59 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- #require File.expand_path(File.dirname(__FILE__) + '/../lib/starting_blocks.rb')
4
3
  require 'starting_blocks'
5
4
 
6
- options = {}
7
-
8
- arguments = ARGV
9
- config_file = File.expand_path('~/.sb')
10
-
11
- if File.exists?(config_file)
12
- additional_arguments = File.read(config_file).split(' ')
13
- arguments += additional_arguments
14
- end
15
-
16
- require 'starting_blocks-blinky' if arguments.include? '--blinky'
17
- require 'starting_blocks-growl' if arguments.include? '--growl'
18
- require 'starting_blocks-stopplicht' if arguments.include? '--stopplicht'
19
-
20
- StartingBlocks.verbose = arguments.include? '--verbose'
21
- options[:no_vendor] = arguments.include?('--vendor') == false
22
- options[:use_bundler] = Dir['Gemfile'].count > 0
23
-
24
- def run_all_specs options
25
- files = ['**/*_spec.rb*', '**/*_test.rb*', '**/test_*.rb*'].map do |d|
26
- Dir[d].
27
- select { |f| File.file?(f) }.
28
- map { |x| File.expand_path(x) }
29
- end.flatten
30
-
31
- StartingBlocks::Runner.new(options).run_files files
32
- end
33
-
34
- if arguments.include? '--watch'
35
- listener = StartingBlocks::Watcher.start_watching Dir, options
36
- StartingBlocks.display "Going to sleep, waiting for changes"
37
-
38
- puts 'Enter "stop" to stop the listener'
39
- puts 'Enter a blank line to run all of the tests'
40
-
41
- listener.start
42
- loop do
43
- user_input = STDIN.gets
44
- if user_input == "stop\n"
45
- exit
46
- elsif user_input == "\n"
47
- run_all_specs options
48
- end
49
- end
50
- elsif arguments.include? '--off'
51
- StartingBlocks::Extensions::BlinkyLighting.turn_off!
52
- else
53
- results = run_all_specs options
54
-
55
- parsed_results = StartingBlocks::Publisher.result_parser.parse(results)
56
- success = parsed_results[:color] == :green
57
-
58
- exit success
59
- end
5
+ StartingBlocks::Cli.run ARGV
@@ -0,0 +1,61 @@
1
+ module StartingBlocks
2
+
3
+ module Cli
4
+
5
+ def self.run arguments
6
+ load_the_arguments_to_be_considered arguments
7
+ setup_the_system
8
+ run_the_appropriate_command
9
+ end
10
+
11
+ class << self
12
+
13
+ private
14
+
15
+ def load_the_arguments_to_be_considered arguments
16
+ StartingBlocks.arguments = build_all_arguments_with arguments
17
+ end
18
+
19
+ def build_all_arguments_with arguments
20
+ args = [arguments, arguments_from_the_config_file].flatten
21
+ args.map { |x| x.gsub('--', '').to_sym }
22
+ end
23
+
24
+ def arguments_from_the_config_file
25
+ config_file = File.expand_path('~/.sb')
26
+ return [] unless File.exists?(config_file)
27
+ File.read(config_file).split(' ')
28
+ end
29
+
30
+ def setup_the_system
31
+ StartingBlocks.arguments.each do |argument|
32
+ if operation = StartingBlocks.conditional_operations[argument]
33
+ operation.call
34
+ else
35
+ try_to_load_a_blinky_extension argument
36
+ end
37
+ end
38
+ StartingBlocks.operations_to_always_run.each { |_, o| o.call }
39
+ end
40
+
41
+ def try_to_load_a_blinky_extension argument
42
+ begin
43
+ require "starting_blocks-#{argument}"
44
+ rescue LoadError => error
45
+ end
46
+ end
47
+
48
+ def run_the_appropriate_command
49
+ StartingBlocks.actions[name_of_action_to_take].call
50
+ end
51
+
52
+ def name_of_action_to_take
53
+ action = StartingBlocks.actions.keys.select { |x| StartingBlocks.arguments.include? x }.first
54
+ action || :run_all_tests
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+
61
+ end
@@ -1,3 +1,3 @@
1
1
  module StartingBlocks
2
- VERSION = "0.7.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -4,12 +4,91 @@ require_relative 'starting_blocks/watcher'
4
4
  require_relative 'starting_blocks/result_parser'
5
5
  require_relative 'starting_blocks/result_text_parser'
6
6
  require_relative 'starting_blocks/publisher'
7
- #require_relative 'extensions/blinky'
7
+ require_relative 'starting_blocks/cli'
8
8
 
9
9
  module StartingBlocks
10
10
 
11
11
  class << self
12
12
  attr_accessor :verbose
13
+ attr_accessor :options
14
+ attr_accessor :arguments
15
+ attr_accessor :conditional_operations
16
+
17
+ def options
18
+ @options ||= {}
19
+ end
20
+
21
+ def arguments
22
+ @arguments ||= []
23
+ end
24
+
25
+ def actions
26
+ @actions ||= default_actions
27
+ end
28
+
29
+ def conditional_operations
30
+ @conditional_operations ||= default_conditional_operations
31
+ end
32
+
33
+ def operations_to_always_run
34
+ @operations_to_always_run ||= default_operations_to_always_run
35
+ end
36
+
37
+ private
38
+
39
+ def default_operations_to_always_run
40
+ {
41
+ "vendor" => (-> { StartingBlocks.options[:no_vendor] = (StartingBlocks.arguments.include?(:vendor) == false) }),
42
+ "bundler" => (-> { StartingBlocks.options[:use_bundler] = (Dir['Gemfile'].count > 0) } )
43
+ }
44
+ end
45
+
46
+ def default_conditional_operations
47
+ {
48
+ verbose: -> { StartingBlocks.verbose }
49
+ }
50
+ end
51
+
52
+ def default_actions
53
+ {
54
+ watch: -> do
55
+ listener = StartingBlocks::Watcher.start_watching Dir, StartingBlocks.options
56
+ StartingBlocks.display "Going to sleep, waiting for changes"
57
+ puts 'Enter "stop" to stop the listener'
58
+ puts 'Enter a blank line to run all of the tests'
59
+ listener.start
60
+ loop do
61
+ user_input = STDIN.gets
62
+ if user_input == "stop\n"
63
+ exit
64
+ elsif user_input == "\n"
65
+ run_all_specs.call
66
+ end
67
+ end
68
+ end,
69
+ run_all_tests: -> do
70
+ results = run_all_specs.call
71
+ parsed_results = StartingBlocks::Publisher.result_parser.parse(results)
72
+ success = parsed_results[:color] == :green
73
+ exit success
74
+ end,
75
+ off: -> do
76
+ StartingBlocks::Extensions::BlinkyLighting.turn_off!
77
+ end
78
+ }
79
+ end
80
+
81
+ def run_all_specs
82
+ ->() do
83
+ files = ['**/*_spec.rb*', '**/*_test.rb*', '**/test_*.rb*'].map do |d|
84
+ Dir[d].
85
+ select { |f| File.file?(f) }.
86
+ map { |x| File.expand_path(x) }
87
+ end.flatten
88
+ StartingBlocks::Runner.new(StartingBlocks.options).run_files files
89
+ end
90
+ end
91
+
13
92
  end
14
93
 
15
94
  def self.display message
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: starting_blocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-05 00:00:00.000000000 Z
11
+ date: 2014-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,6 +110,7 @@ files:
110
110
  - Rakefile
111
111
  - bin/sb
112
112
  - lib/starting_blocks.rb
113
+ - lib/starting_blocks/cli.rb
113
114
  - lib/starting_blocks/publisher.rb
114
115
  - lib/starting_blocks/result_parser.rb
115
116
  - lib/starting_blocks/result_text_parser.rb