empezar 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in empezar.gemspec
4
- gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'pry'
8
+ gem 'guard-rspec'
9
+ gem 'guard-cucumber'
10
+ gem 'rb-inotify'
11
+ gem 'libnotify'
12
+ end
data/Guardfile ADDED
@@ -0,0 +1,29 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', cli: '--color --format doc' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+
17
+ # Capybara features specs
18
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
+
20
+ # Turnip features and steps
21
+ watch(%r{^spec/acceptance/(.+)\.feature$})
22
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
+ end
24
+
25
+ guard 'cucumber' do
26
+ watch(%r{^features/.+\.feature$})
27
+ watch(%r{^features/support/.+$}) { 'features' }
28
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
29
+ end
data/cucumber.yml ADDED
@@ -0,0 +1 @@
1
+ default: -ci
data/empezar.gemspec CHANGED
@@ -17,6 +17,8 @@ Gem::Specification.new do |gem|
17
17
  gem.add_dependency 'term-ansicolor'
18
18
 
19
19
  gem.add_development_dependency 'rspec'
20
+ gem.add_development_dependency 'fast'
21
+ gem.add_development_dependency 'cucumber'
20
22
 
21
23
  gem.files = `git ls-files`.split($/)
22
24
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -0,0 +1,38 @@
1
+ Feature: Starting up an app with Empezar
2
+ In order to have all common needs covered for when
3
+ developing a new app
4
+ As a Ruby developer
5
+ I want to have Empezar dealing with log, configuration and
6
+ command line parameters setup for me
7
+
8
+ @clean
9
+ Scenario: Very simple setup, no args
10
+ Given the config file "config/main.yaml"
11
+ """
12
+ data: 90
13
+ """
14
+ When I start the runner
15
+ Then I should have 'data' with value 90 in Configuration
16
+ When I info "Hello World" in the Log
17
+ Then I should see "Hello World" in blue in command line
18
+ And I should see "Hello World" in the "log/main.log" file
19
+
20
+ @clean
21
+ Scenario: App with some arguments
22
+ Given the config file "config/main.yaml"
23
+ """
24
+ data: 89
25
+ client:
26
+ host: localhost
27
+ path: /
28
+ """
29
+ And the command line arguments
30
+ """
31
+ client.port:8080 more:34
32
+ """
33
+ When I start the runner
34
+ Then I should have 'data' with value 89 in Configuration
35
+ And I should have 'more' with value 34 in Configuration
36
+ And I should have 8080 in 'port' in 'client'
37
+ And I should have "localhost" in 'host' in 'client'
38
+ And I should have "/" in 'path' in 'client'
@@ -0,0 +1,43 @@
1
+ Given /^the config file "(.+?)"$/ do |path, content|
2
+ Fast.file.write path, content
3
+ end
4
+
5
+ When /^I start the runner$/ do
6
+ @arguments ||= []
7
+ Runner.run(
8
+ stdout: fake_stdout,
9
+ config_file: 'config/main.yaml',
10
+ log_file: 'log/main.log',
11
+ arguments: @arguments
12
+ )
13
+ end
14
+
15
+ Then /^I should have '(.+?)' with value (\d+) in Configuration$/ do |key, value|
16
+ Configuration.send(key.to_sym).should == value.to_i
17
+ end
18
+
19
+ When /^I info "(.+?)" in the Log$/ do |text|
20
+ Log.info text
21
+ end
22
+
23
+ Then /^I should see "(.+?)" in blue in command line$/ do |text|
24
+ fake_stdout.last.should == Term::ANSIColor.blue(text)
25
+ end
26
+
27
+ And /^I should see "(.+?)" in the "(.+?)" file$/ do |text, file|
28
+ Fast.file.read(file).should include text
29
+ end
30
+
31
+ Given /^the command line arguments$/ do |argument_line|
32
+ @arguments = argument_line.split " "
33
+ end
34
+
35
+ Then /^I should have (\d+) in '(.+?)' in '(.+?)'$/ do |value, subkey, key|
36
+ Configuration.send(key.to_sym).send(subkey.to_sym)
37
+ .should == value.to_i
38
+ end
39
+
40
+ Then /^I should have "(.+?)" in '(.+?)' in '(.+?)'$/ do |value, subkey, key|
41
+ Configuration.send(key.to_sym).send(subkey.to_sym)
42
+ .should == value
43
+ end
@@ -0,0 +1,20 @@
1
+ require 'fast/fast'
2
+
3
+ $LOAD_PATH << File.expand_path("../../../lib", __FILE__)
4
+
5
+ require 'empezar'
6
+
7
+
8
+ module Helpers
9
+ class StdOut < Array
10
+ def puts element
11
+ self.push element
12
+ end
13
+ end
14
+
15
+ def fake_stdout
16
+ @fake_stdout ||= StdOut.new
17
+ end
18
+ end
19
+
20
+ World Helpers
@@ -0,0 +1,3 @@
1
+ After "@clean" do
2
+ Fast.dir.remove! :config, :log
3
+ end
@@ -1,25 +1,26 @@
1
1
  module Empezar
2
2
  class EchoingFormatter
3
- attr_accessor :wrapee
3
+ attr_accessor :wrapee, :stdout
4
4
 
5
- def initialize wrapee
5
+ def initialize wrapee, stdout
6
6
  @wrapee = wrapee
7
+ @stdout = stdout
7
8
  end
8
9
 
9
10
  def call severity, datetime, progname, message
10
11
  case severity
11
12
  when Logger::Severity::FATAL, "FATAL"
12
- $stdout.puts Term::ANSIColor.bold Term::ANSIColor.red message
13
+ @stdout.puts Term::ANSIColor.bold Term::ANSIColor.red message
13
14
  when Logger::Severity::ERROR, "ERROR"
14
- $stdout.puts Term::ANSIColor.red message
15
+ @stdout.puts Term::ANSIColor.red message
15
16
  when Logger::Severity::WARN, "WARN"
16
- $stdout.puts Term::ANSIColor.yellow message
17
+ @stdout.puts Term::ANSIColor.yellow message
17
18
  when Logger::Severity::INFO, "INFO"
18
- $stdout.puts Term::ANSIColor.blue message
19
+ @stdout.puts Term::ANSIColor.blue message
19
20
  when Logger::Severity::DEBUG, "DEBUG"
20
- $stdout.puts Term::ANSIColor.dark message
21
+ @stdout.puts Term::ANSIColor.dark message
21
22
  when Logger::Severity::UNKNOWN, "UNKNOWN"
22
- $stdout.puts message
23
+ @stdout.puts message
23
24
  end
24
25
 
25
26
  wrapee.call severity, datetime, progname, message
@@ -0,0 +1,7 @@
1
+ require 'empezar'
2
+
3
+ # Runs empezar with the default data
4
+ Runner.run config_file: 'config/main.yaml',
5
+ log_file: 'log/main.yaml',
6
+ stdout: $stdout,
7
+ arguments: ARGV
@@ -1,23 +1,24 @@
1
1
  module Empezar
2
2
  class Runner
3
- def self.run argument = 'config/main.yaml'
4
- self.start_configuration argument
5
- self.start_logger
3
+ def self.run params
4
+ self.start_configuration params[:config_file], params[:arguments]
5
+ self.start_logger params[:log_file], params[:stdout]
6
6
  end
7
7
 
8
- def self.start_configuration argument
9
- unless File.exist? argument
10
- raise ConfigurationFileMissingException, "The configuration file is missing from '#{argument}'"
8
+ def self.start_configuration config_file, arguments
9
+ unless File.exist? config_file
10
+ raise ConfigurationFileMissingException, "The configuration file is missing from '#{config_file}'"
11
11
  end
12
- Empezar::Configuration.instance.merge! SymbolMatrix.new argument
12
+ Empezar::Configuration.instance.merge! SymbolMatrix.new config_file
13
+ Empezar::Configuration.instance.recursive_merge! SymbolMatrix.new arguments.join " "
13
14
  end
14
15
 
15
- def self.start_logger
16
+ def self.start_logger log_file, stdout
16
17
  Dir.mkdir 'log' unless Dir.exist? 'log'
17
18
  Empezar::Log.start Logger.new 'log/main.log', 'daily'
18
19
  if Empezar::Configuration.instance.has_key? :verbosity and Empezar::Configuration.instance.verbosity == 'silent'
19
20
  else
20
- Empezar::Log.instance.formatter = EchoingFormatter.new Logger::Formatter.new
21
+ Empezar::Log.instance.formatter = EchoingFormatter.new Logger::Formatter.new, stdout
21
22
  end
22
23
  end
23
24
  end
@@ -1,3 +1,3 @@
1
1
  module Empezar
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/empezar.rb CHANGED
@@ -6,10 +6,7 @@ require 'logger'
6
6
 
7
7
  require 'empezar/version'
8
8
  require 'empezar/exceptions'
9
- require 'empezar/symbolmatrix'
10
9
  require 'empezar/configuration'
11
10
  require 'empezar/runner'
12
11
  require 'empezar/echoing_formatter'
13
- require 'empezar/log'
14
-
15
- require 'writer/symbolmatrix'
12
+ require 'empezar/log'
@@ -3,22 +3,31 @@ require 'spec_helper'
3
3
  describe Empezar::EchoingFormatter do
4
4
  before do
5
5
  @formatter_stub = stub 'formatter'
6
+ @stdout = stub 'stdout'
6
7
  end
7
8
 
8
9
  describe '#initialize' do
9
10
  it 'should receive a Formatter as an argument and store it as the wrapee' do
10
- my_formatter = Empezar::EchoingFormatter.new @formatter_stub
11
+ my_formatter = Empezar::EchoingFormatter
12
+ .new @formatter_stub, @stdout
11
13
  my_formatter.wrapee.should == @formatter_stub
12
14
  end
15
+
16
+ it 'should receive an io as an argument and store it as the stdout' do
17
+ my_formatter = Empezar::EchoingFormatter
18
+ .new @formatter_stub, @stdout
19
+ my_formatter.stdout.should == @stdout
20
+ end
13
21
  end
14
22
 
15
23
  describe '#call' do
16
24
  context 'fatal error' do
17
25
  it 'should puts to stdout with a bold red message' do
18
26
  @formatter_stub.stub :call
19
- $stdout.should_receive(:puts).with Term::ANSIColor.bold Term::ANSIColor.red "message"
27
+ @stdout.should_receive(:puts).with Term::ANSIColor.bold Term::ANSIColor.red "message"
20
28
 
21
- formatter = Empezar::EchoingFormatter.new @formatter_stub
29
+ formatter = Empezar::EchoingFormatter
30
+ .new @formatter_stub, @stdout
22
31
  formatter.call "FATAL", nil, nil, "message"
23
32
  end
24
33
  end
@@ -26,9 +35,10 @@ describe Empezar::EchoingFormatter do
26
35
  context 'error' do
27
36
  it 'should puts to stdout with a red message' do
28
37
  @formatter_stub.stub :call
29
- $stdout.should_receive(:puts).with Term::ANSIColor.red "message"
38
+ @stdout.should_receive(:puts).with Term::ANSIColor.red "message"
30
39
 
31
- formatter = Empezar::EchoingFormatter.new @formatter_stub
40
+ formatter = Empezar::EchoingFormatter
41
+ .new @formatter_stub, @stdout
32
42
  formatter.call "ERROR", nil, nil, "message"
33
43
  end
34
44
  end
@@ -36,9 +46,10 @@ describe Empezar::EchoingFormatter do
36
46
  context 'warn' do
37
47
  it 'should puts to stdout with a yellow message' do
38
48
  @formatter_stub.stub :call
39
- $stdout.should_receive(:puts).with Term::ANSIColor.yellow "message"
49
+ @stdout.should_receive(:puts).with Term::ANSIColor.yellow "message"
40
50
 
41
- formatter = Empezar::EchoingFormatter.new @formatter_stub
51
+ formatter = Empezar::EchoingFormatter
52
+ .new @formatter_stub, @stdout
42
53
  formatter.call "WARN", nil, nil, "message"
43
54
  end
44
55
  end
@@ -46,9 +57,10 @@ describe Empezar::EchoingFormatter do
46
57
  context 'info' do
47
58
  it 'should puts to stdout with a blue message' do
48
59
  @formatter_stub.stub :call
49
- $stdout.should_receive(:puts).with Term::ANSIColor.blue "message"
60
+ @stdout.should_receive(:puts).with Term::ANSIColor.blue "message"
50
61
 
51
- formatter = Empezar::EchoingFormatter.new @formatter_stub
62
+ formatter = Empezar::EchoingFormatter
63
+ .new @formatter_stub, @stdout
52
64
  formatter.call "INFO", nil, nil, "message"
53
65
  end
54
66
  end
@@ -56,9 +68,10 @@ describe Empezar::EchoingFormatter do
56
68
  context 'unknown' do
57
69
  it 'should puts to stdout with the message' do
58
70
  @formatter_stub.stub :call
59
- $stdout.should_receive(:puts).with "message"
71
+ @stdout.should_receive(:puts).with "message"
60
72
 
61
- formatter = Empezar::EchoingFormatter.new @formatter_stub
73
+ formatter = Empezar::EchoingFormatter
74
+ .new @formatter_stub, @stdout
62
75
  formatter.call "UNKNOWN", nil, nil, "message"
63
76
  end
64
77
  end
@@ -66,9 +79,10 @@ describe Empezar::EchoingFormatter do
66
79
  context 'debug' do
67
80
  it 'should puts to stdout with a dark message' do
68
81
  @formatter_stub.stub :call
69
- $stdout.should_receive(:puts).with Term::ANSIColor.dark "message"
82
+ @stdout.should_receive(:puts).with Term::ANSIColor.dark "message"
70
83
 
71
- formatter = Empezar::EchoingFormatter.new @formatter_stub
84
+ formatter = Empezar::EchoingFormatter
85
+ .new @formatter_stub, @stdout
72
86
  formatter.call "DEBUG", nil, nil, "message"
73
87
  end
74
88
  end
@@ -77,7 +91,8 @@ describe Empezar::EchoingFormatter do
77
91
  arg1 = stub; arg2 = stub; arg3 = stub; arg4 = stub
78
92
  @formatter_stub.should_receive(:call).with arg1, arg2, arg3, arg4
79
93
 
80
- formatter = Empezar::EchoingFormatter.new @formatter_stub
94
+ formatter = Empezar::EchoingFormatter
95
+ .new @formatter_stub, @stdout
81
96
  formatter.call arg1, arg2, arg3, arg4
82
97
  end
83
98
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe "running with defaults" do
4
+ it 'should use config/main.yaml, log/main.yaml, ARGV and $stdout' do
5
+ Empezar::Runner.should_receive(:run)
6
+ .with(
7
+ config_file: "config/main.yaml",
8
+ log_file: "log/main.yaml",
9
+ stdout: $stdout,
10
+ arguments: ARGV
11
+ )
12
+
13
+ require 'empezar/run'
14
+ end
15
+ end
@@ -2,25 +2,32 @@ require 'spec_helper'
2
2
 
3
3
  describe Empezar::Runner do
4
4
  describe '.run' do
5
- it 'should call start_logger' do
6
- Empezar::Runner.stub :start_configuration
7
- Empezar::Runner.should_receive(:start_logger)
8
- Empezar::Runner.run
9
- end
10
-
11
- context 'without argument' do
12
- it 'should call start_configuration with config/main.yaml' do
13
- Empezar::Runner.stub :start_logger
14
- Empezar::Runner.should_receive(:start_configuration).with('config/main.yaml')
15
- Empezar::Runner.run
5
+ context 'with params for stdout and config_file' do
6
+ before do
7
+ @stdout = stub 'stdout'
8
+ @config_file = stub 'config file'
9
+ @log_file = stub 'log file'
10
+ @arguments = stub 'arguments'
11
+ @params = {
12
+ stdout: @stdout,
13
+ log_file: @log_file,
14
+ config_file: @config_file,
15
+ arguments: @arguments
16
+ }
16
17
  end
17
- end
18
18
 
19
- context 'with argument' do
20
- it 'should call start_configuration with the argument' do
19
+ it 'should call start_logger' do
20
+ Empezar::Runner.stub :start_configuration
21
+ Empezar::Runner.should_receive(:start_logger)
22
+ .with @log_file, @stdout
23
+ Empezar::Runner.run @params
24
+ end
25
+
26
+ it 'should call start_configuration' do
21
27
  Empezar::Runner.stub :start_logger
22
- Empezar::Runner.should_receive(:start_configuration).with('hola')
23
- Empezar::Runner.run 'hola'
28
+ Empezar::Runner.should_receive(:start_configuration)
29
+ .with @config_file, @arguments
30
+ Empezar::Runner.run @params
24
31
  end
25
32
  end
26
33
  end
@@ -28,7 +35,10 @@ describe Empezar::Runner do
28
35
  describe '.start_logger' do
29
36
  before do
30
37
  @demo_logger = stub 'demo logger'
31
- Logger.should_receive(:new).with('log/main.log', 'daily').and_return @demo_logger
38
+ @stdout = stub 'stdout'
39
+ @log_file = 'log/main.log'
40
+ Logger.should_receive(:new)
41
+ .with(@log_file, 'daily').and_return @demo_logger
32
42
  end
33
43
 
34
44
  context 'normal conditions of pressure and temperature' do
@@ -36,17 +46,26 @@ describe Empezar::Runner do
36
46
  formatter = stub 'formatter'
37
47
  echoing_formatter = stub 'echoing formatter'
38
48
 
39
- Dir.should_receive(:exist?).with('log').and_return true
40
- Empezar::Configuration.instance.should_receive(:has_key?).with(:verbosity).and_return false
41
-
42
- Logger::Formatter.should_receive(:new).and_return formatter
43
- Empezar::EchoingFormatter.should_receive(:new).with(formatter).and_return echoing_formatter
44
- @demo_logger.should_receive(:formatter=).with echoing_formatter
45
-
46
- Empezar::Log.should_receive(:start).with @demo_logger
47
- Empezar::Log.should_receive(:instance).and_return @demo_logger
48
-
49
- Empezar::Runner.start_logger
49
+ Dir.should_receive(:exist?).with('log')
50
+ .and_return true
51
+ Empezar::Configuration.instance
52
+ .should_receive(:has_key?).with(:verbosity)
53
+ .and_return false
54
+
55
+ Logger::Formatter.should_receive(:new)
56
+ .and_return formatter
57
+ Empezar::EchoingFormatter.should_receive(:new)
58
+ .with(formatter, @stdout)
59
+ .and_return echoing_formatter
60
+ @demo_logger.should_receive(:formatter=)
61
+ .with echoing_formatter
62
+
63
+ Empezar::Log.should_receive(:start)
64
+ .with @demo_logger
65
+ Empezar::Log.should_receive(:instance)
66
+ .and_return @demo_logger
67
+
68
+ Empezar::Runner.start_logger @log_file, @stdout
50
69
  end
51
70
  end
52
71
 
@@ -59,7 +78,7 @@ describe Empezar::Runner do
59
78
 
60
79
  Empezar::Log.should_receive(:start).with @demo_logger
61
80
 
62
- Empezar::Runner.start_logger
81
+ Empezar::Runner.start_logger @stdout, @log_file
63
82
  end
64
83
  end
65
84
 
@@ -72,27 +91,62 @@ describe Empezar::Runner do
72
91
 
73
92
  Empezar::Log.should_receive(:start).with @demo_logger
74
93
 
75
- Empezar::Runner.start_logger
94
+ Empezar::Runner.start_logger @stdout, @log_file
76
95
  end
77
96
  end
78
97
  end
79
98
 
80
99
  describe '.start_configuration' do
100
+ before do
101
+ @arguments = stub 'arguments'
102
+ end
103
+
81
104
  context 'the configuration file exists' do
82
- it 'should initialize the configuration with the argument' do
105
+ before do
83
106
  File.stub :exist? => true
84
- config_stub = stub 'config'
85
- SymbolMatrix.should_receive(:new).with('config/main.yaml').and_return config_stub
86
- Empezar::Configuration.instance.should_receive(:merge!).with(config_stub)
107
+ @config_stub = stub 'config'
108
+ @joined_args = stub 'joined arguments'
109
+ @extra_data = stub 'extra data'
110
+ end
111
+
112
+ it 'should initialize the configuration with the argument' do
113
+ SymbolMatrix.should_receive(:new).with('config/main.yaml')
114
+ .and_return @config_stub
115
+ Empezar::Configuration.instance.should_receive(:merge!)
116
+ .with @config_stub
117
+
118
+ @arguments.stub :join => @joined_args
119
+ SymbolMatrix.should_receive(:new).with(@joined_args)
120
+ .and_return @extra_data
121
+ Empezar::Configuration.instance.stub :recursive_merge!
122
+
123
+ Empezar::Runner
124
+ .start_configuration 'config/main.yaml', @arguments
125
+ end
87
126
 
88
- Empezar::Runner.start_configuration 'config/main.yaml'
127
+ it 'should parse the arguments joined and merge them recursively into Configuration' do
128
+ SymbolMatrix.should_receive(:new).with('config/main.yaml')
129
+ .and_return @config_stub
130
+ Empezar::Configuration.instance.should_receive(:merge!)
131
+ .with @config_stub
132
+
133
+ @arguments.should_receive(:join).with(" ")
134
+ .and_return @joined_args
135
+ SymbolMatrix.should_receive(:new).with(@joined_args)
136
+ .and_return @extra_data
137
+ Empezar::Configuration.instance.should_receive(:recursive_merge!)
138
+ .with @extra_data
139
+
140
+ Empezar::Runner
141
+ .start_configuration 'config/main.yaml', @arguments
89
142
  end
90
143
  end
91
144
 
92
145
  context 'the configuration file is missing' do
93
146
  it 'should raise a relevant error' do
94
147
  File.should_receive(:exist?).with('config/main.yaml').and_return false
95
- expect { Empezar::Runner.start_configuration 'config/main.yaml'
148
+ expect { Empezar::Runner
149
+ .start_configuration 'config/main.yaml', @arguments
96
150
  }.to raise_error Empezar::ConfigurationFileMissingException,
97
151
  "The configuration file is missing from 'config/main.yaml'"
98
152
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: empezar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
12
+ date: 2012-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: symbolmatrix
@@ -75,6 +75,38 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: fast
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: cucumber
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
78
110
  description: A simple Ruby library to enforce a convention for configuration, logging
79
111
  and execution
80
112
  email:
@@ -85,31 +117,35 @@ extra_rdoc_files: []
85
117
  files:
86
118
  - .gitignore
87
119
  - Gemfile
120
+ - Guardfile
88
121
  - LICENSE.txt
89
122
  - README.md
90
123
  - Rakefile
124
+ - cucumber.yml
91
125
  - empezar.gemspec
126
+ - features/starting_up.feature
127
+ - features/step_definitions/starting_up_steps.rb
128
+ - features/support/env.rb
129
+ - features/support/hooks.rb
92
130
  - lib/empezar.rb
93
131
  - lib/empezar/configuration.rb
94
132
  - lib/empezar/echoing_formatter.rb
95
133
  - lib/empezar/exceptions.rb
96
134
  - lib/empezar/log.rb
135
+ - lib/empezar/run.rb
97
136
  - lib/empezar/runner.rb
98
- - lib/empezar/symbolmatrix.rb
99
137
  - lib/empezar/version.rb
100
- - lib/writer/symbolmatrix.rb
101
138
  - sample/config/main.yaml
102
139
  - sample/script.rb
103
140
  - spec/configuration_spec.rb
104
141
  - spec/empezar/configuration_spec.rb
105
142
  - spec/empezar/echoing_formatter_spec.rb
106
143
  - spec/empezar/log_spec.rb
144
+ - spec/empezar/run_spec.rb
107
145
  - spec/empezar/runner_spec.rb
108
146
  - spec/log_spec.rb
109
147
  - spec/runner_spec.rb
110
148
  - spec/spec_helper.rb
111
- - spec/symbolmatrix_spec.rb
112
- - spec/writer/symbolmatrix_spec.rb
113
149
  homepage: http://github.com/Fetcher/empezar
114
150
  licenses: []
115
151
  post_install_message:
@@ -130,20 +166,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
166
  version: '0'
131
167
  requirements: []
132
168
  rubyforge_project:
133
- rubygems_version: 1.8.24
169
+ rubygems_version: 1.8.21
134
170
  signing_key:
135
171
  specification_version: 3
136
172
  summary: A simple Ruby library to enforce a convention for configuration, logging
137
173
  and execution
138
174
  test_files:
175
+ - features/starting_up.feature
176
+ - features/step_definitions/starting_up_steps.rb
177
+ - features/support/env.rb
178
+ - features/support/hooks.rb
139
179
  - spec/configuration_spec.rb
140
180
  - spec/empezar/configuration_spec.rb
141
181
  - spec/empezar/echoing_formatter_spec.rb
142
182
  - spec/empezar/log_spec.rb
183
+ - spec/empezar/run_spec.rb
143
184
  - spec/empezar/runner_spec.rb
144
185
  - spec/log_spec.rb
145
186
  - spec/runner_spec.rb
146
187
  - spec/spec_helper.rb
147
- - spec/symbolmatrix_spec.rb
148
- - spec/writer/symbolmatrix_spec.rb
149
188
  has_rdoc:
@@ -1,3 +0,0 @@
1
- class SymbolMatrix < Hash
2
- include Discoverer::Writer
3
- end
@@ -1,21 +0,0 @@
1
- module Writer
2
- class SymbolMatrix
3
- attr_accessor :source
4
-
5
- def initialize source
6
- @source = source
7
- end
8
-
9
- def serialization prefix = ""
10
- text = ""
11
- @source.each do |key, value|
12
- if value.is_a? Hash
13
- text += value.to.serialization(prefix + key.to_s + ".") +" "
14
- else
15
- text += "#{prefix}#{key}:#{value} "
16
- end
17
- end
18
- text[0..-2]
19
- end
20
- end
21
- end
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe SymbolMatrix do
4
- it 'should include Discoverer::Writer' do
5
- SymbolMatrix.ancestors.should include Discoverer::Writer
6
- end
7
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Writer::SymbolMatrix do
4
- describe '#initialize' do
5
- it 'should set the argument as the source' do
6
- source = stub 'source'
7
- writer = Writer::SymbolMatrix.new source
8
- writer.source.should == source
9
- end
10
- end
11
-
12
- describe '#serialization' do
13
- it 'should transform the multidimentional hash into a simple dot and colons serialization' do
14
- multidimentional = SymbolMatrix.new hola: {
15
- the: "start",
16
- asdfdf: 8989,
17
- of: {
18
- some: "multidimentional"
19
- }
20
- },
21
- stuff: "oops"
22
-
23
- writer = Writer::SymbolMatrix.new multidimentional
24
- writer.serialization.should == "hola.the:start hola.asdfdf:8989 hola.of.some:multidimentional stuff:oops"
25
- end
26
-
27
- context 'with argument' do
28
- it 'should do the transformation appending the argument to each key-value pair' do
29
- simple = SymbolMatrix.new mykey: "myvalue", otherkey: "othervalue"
30
-
31
- writer = Writer::SymbolMatrix.new simple
32
- writer.serialization("inside.").should == "inside.mykey:myvalue inside.otherkey:othervalue"
33
- end
34
- end
35
- end
36
- end