bovem 2.0.3 → 2.1.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.
- data/.travis-gemfile +13 -0
- data/.travis.yml +4 -2
- data/Gemfile +13 -1
- data/bovem.gemspec +2 -10
- data/doc/Bovem.html +3 -3
- data/doc/Bovem/Configuration.html +14 -12
- data/doc/Bovem/Console.html +155 -301
- data/doc/Bovem/ConsoleMethods.html +3 -3
- data/doc/Bovem/ConsoleMethods/Interactions.html +36 -44
- data/doc/Bovem/ConsoleMethods/Interactions/ClassMethods.html +7 -7
- data/doc/Bovem/ConsoleMethods/Logging.html +62 -62
- data/doc/Bovem/ConsoleMethods/Logging/ClassMethods.html +7 -7
- data/doc/Bovem/ConsoleMethods/Output.html +59 -141
- data/doc/Bovem/ConsoleMethods/StyleHandling.html +3 -3
- data/doc/Bovem/ConsoleMethods/StyleHandling/ClassMethods.html +4 -4
- data/doc/Bovem/Errors.html +3 -3
- data/doc/Bovem/Errors/InvalidConfiguration.html +3 -3
- data/doc/Bovem/Errors/InvalidLogger.html +3 -3
- data/doc/Bovem/Logger.html +3 -3
- data/doc/Bovem/Shell.html +22 -22
- data/doc/Bovem/ShellMethods.html +3 -3
- data/doc/Bovem/ShellMethods/Directories.html +21 -21
- data/doc/Bovem/ShellMethods/Execute.html +21 -21
- data/doc/Bovem/ShellMethods/General.html +130 -20
- data/doc/Bovem/ShellMethods/Read.html +21 -21
- data/doc/Bovem/ShellMethods/Write.html +20 -20
- data/doc/Bovem/Version.html +5 -5
- data/doc/_index.html +4 -4
- data/doc/file.README.html +3 -3
- data/doc/frames.html +1 -1
- data/doc/index.html +3 -3
- data/doc/method_list.html +43 -51
- data/doc/top-level-namespace.html +3 -3
- data/lib/bovem.rb +1 -1
- data/lib/bovem/configuration.rb +12 -4
- data/lib/bovem/console.rb +25 -46
- data/lib/bovem/shell.rb +12 -5
- data/lib/bovem/version.rb +2 -2
- data/spec/bovem/configuration_spec.rb +3 -3
- data/spec/bovem/console_spec.rb +12 -30
- data/spec/bovem/shell_spec.rb +17 -2
- metadata +6 -118
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.
|
9
|
+
— Documentation by YARD 0.8.4
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -103,9 +103,9 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Tue Feb 5 13:31:46 2013 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
|
-
0.8.
|
108
|
+
0.8.4 (ruby-1.9.3).
|
109
109
|
</div>
|
110
110
|
|
111
111
|
</body>
|
data/lib/bovem.rb
CHANGED
data/lib/bovem/configuration.rb
CHANGED
@@ -30,6 +30,7 @@ module Bovem
|
|
30
30
|
# @param logger [Logger] The logger to use for notifications.
|
31
31
|
# @see #parse
|
32
32
|
def initialize(file = nil, overrides = {}, logger = nil)
|
33
|
+
self.i18n_setup(:bovem, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../../locales/"))
|
33
34
|
self.parse(file, overrides, logger)
|
34
35
|
end
|
35
36
|
|
@@ -91,14 +92,21 @@ module Bovem
|
|
91
92
|
def read_configuration_file(file, logger)
|
92
93
|
begin
|
93
94
|
# Open the file
|
94
|
-
path = ::Pathname.new(file).realpath
|
95
|
+
path = file =~ /^#{File::SEPARATOR}/ ? file : ::Pathname.new(file).realpath.to_s
|
95
96
|
logger.info(self.i18n.using(path)) if logger
|
96
|
-
|
97
|
-
eval(::File.read(path))
|
98
|
-
end
|
97
|
+
eval_file(path)
|
99
98
|
rescue ::Exception => e
|
100
99
|
raise Bovem::Errors::InvalidConfiguration.new(self.i18n.configuration.invalid(file))
|
101
100
|
end
|
102
101
|
end
|
102
|
+
|
103
|
+
# Eval a configuration file.
|
104
|
+
#
|
105
|
+
# @param path [String] The file to read.
|
106
|
+
def eval_file(path)
|
107
|
+
self.tap do |config|
|
108
|
+
eval(::File.read(path))
|
109
|
+
end
|
110
|
+
end
|
103
111
|
end
|
104
112
|
end
|
data/lib/bovem/console.rb
CHANGED
@@ -112,13 +112,6 @@ module Bovem
|
|
112
112
|
|
113
113
|
# Methods for formatting output messages.
|
114
114
|
module Output
|
115
|
-
# Gets the current screen width.
|
116
|
-
#
|
117
|
-
# @return [Fixnum] The screen width.
|
118
|
-
def get_screen_width
|
119
|
-
::Bovem::Console.execute("tput cols").to_integer(80)
|
120
|
-
end
|
121
|
-
|
122
115
|
# Sets the new indentation width.
|
123
116
|
#
|
124
117
|
# @param width [Fixnum] The new width.
|
@@ -205,7 +198,7 @@ module Bovem
|
|
205
198
|
|
206
199
|
# Compute the real width available for the screen, if we both indent and wrap
|
207
200
|
if wrap == true then
|
208
|
-
wrap =
|
201
|
+
wrap = self.line_width
|
209
202
|
|
210
203
|
if indent == true then
|
211
204
|
wrap -= @indentation
|
@@ -234,8 +227,7 @@ module Bovem
|
|
234
227
|
|
235
228
|
rv = go_up ? "\e[A" : ""
|
236
229
|
|
237
|
-
|
238
|
-
width = (width == true || width.to_integer < 1 ? @screen_width : width.to_integer)
|
230
|
+
width = (width == true || width.to_integer < 1 ? self.line_width : width.to_integer)
|
239
231
|
|
240
232
|
# Get padding
|
241
233
|
padding = width - message.to_s.gsub(/(\e\[[0-9]*[a-z]?)|(\\n)/i, "").length
|
@@ -465,24 +457,20 @@ module Bovem
|
|
465
457
|
# @param prompt [String|Boolean] A prompt to show. If `true`, `Please insert a value:` will be used, if `nil` or `false` no prompt will be shown.
|
466
458
|
# @param default_value [String] Default value if user simply pressed the enter key.
|
467
459
|
# @param validator [Array|Regexp] An array of values or a Regexp to match the submitted value against.
|
468
|
-
# @param echo [Boolean] If to show submitted text to the user.
|
460
|
+
# @param echo [Boolean] If to show submitted text to the user. **Not supported and thus ignored on Rubinius.**
|
469
461
|
def read(prompt = true, default_value = nil, validator = nil, echo = true)
|
470
462
|
prompt = sanitize_prompt(prompt)
|
471
|
-
|
472
|
-
# Adjust validator
|
473
463
|
validator = sanitize_validator(validator)
|
474
464
|
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
handle_reply(reply)
|
481
|
-
end
|
465
|
+
begin
|
466
|
+
catch(:reply) do
|
467
|
+
while true do
|
468
|
+
reply = validate_input_value(read_input_value(prompt, echo, default_value), validator)
|
469
|
+
handle_reply(reply)
|
482
470
|
end
|
483
|
-
rescue Interrupt => e
|
484
|
-
default_value
|
485
471
|
end
|
472
|
+
rescue Interrupt => e
|
473
|
+
default_value
|
486
474
|
end
|
487
475
|
end
|
488
476
|
|
@@ -547,32 +535,19 @@ module Bovem
|
|
547
535
|
validator.present? && !validator.is_a?(::Regexp) ? validator.ensure_array.collect {|v| v.ensure_string} : validator
|
548
536
|
end
|
549
537
|
|
550
|
-
# Handle terminal echoing.
|
551
|
-
#
|
552
|
-
# @param echo [Boolean] If disabled echoing
|
553
|
-
def with_echo_handling(echo = true)
|
554
|
-
rv = nil
|
555
|
-
|
556
|
-
disable_echo = !echo && @stty.present? && /-echo\b/mix.match(::Bovem::Console.execute(@stty)).nil?
|
557
|
-
::Bovem::Console.execute("#{@stty} -echo") if disable_echo
|
558
|
-
rv = yield
|
559
|
-
::Bovem::Console.execute("#{@stty} echo") if disable_echo
|
560
|
-
|
561
|
-
rv
|
562
|
-
end
|
563
|
-
|
564
538
|
# Read an input from the terminal.
|
565
539
|
#
|
566
540
|
# @param prompt [String] A message to show to the user.
|
541
|
+
# @param echo [Boolean] If disable echoing. **Not supported and thus ignored on Rubinius.**
|
567
542
|
# @param default_value [Object] A default value to enter if the user just pressed the enter key.
|
568
543
|
# @return [Object] The read value.
|
569
|
-
def read_input_value(prompt, default_value = nil)
|
544
|
+
def read_input_value(prompt, echo, default_value = nil)
|
570
545
|
if prompt then
|
571
546
|
Kernel.print self.format(prompt, false, false)
|
572
547
|
$stdout.flush
|
573
548
|
end
|
574
549
|
|
575
|
-
reply = $stdin.gets.chop
|
550
|
+
reply = (echo || !$stdin.respond_to?(:noecho) ? $stdin.gets : $stdin.noecho(&:gets)).ensure_string.chop
|
576
551
|
reply.present? ? reply : default_value
|
577
552
|
end
|
578
553
|
|
@@ -609,17 +584,11 @@ module Bovem
|
|
609
584
|
|
610
585
|
# This is a text utility wrapper console I/O.
|
611
586
|
#
|
612
|
-
# @attribute line_width
|
613
|
-
# @return [Fixnum] The line width. Default to `80`.
|
614
|
-
# @attribute screen_width
|
615
|
-
# @return [Fixnum] The current screen width.
|
616
587
|
# @attribute indentation
|
617
588
|
# @return [Fixnum] Current indentation width.
|
618
589
|
# @attribute indentation_string
|
619
590
|
# @return [String] The string used for indentation.
|
620
591
|
class Console
|
621
|
-
attr_accessor :line_width
|
622
|
-
attr_accessor :screen_width
|
623
592
|
attr_accessor :indentation
|
624
593
|
attr_accessor :indentation_string
|
625
594
|
|
@@ -638,11 +607,21 @@ module Bovem
|
|
638
607
|
|
639
608
|
# Initializes a new Console.
|
640
609
|
def initialize
|
641
|
-
@line_width = self.get_screen_width
|
642
610
|
@indentation = 0
|
643
611
|
@indentation_string = " "
|
644
|
-
@stty = ::Bovem::Console.execute("which stty").strip
|
645
612
|
self.i18n_setup(:bovem, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../../locales/"))
|
646
613
|
end
|
614
|
+
|
615
|
+
# Get the width of the terminal.
|
616
|
+
#
|
617
|
+
# @return [Fixnum] The current width of the terminal. If not possible to retrieve the width, it returns `80.
|
618
|
+
def line_width
|
619
|
+
begin
|
620
|
+
require "io/console" if !defined?($stdin.winsize)
|
621
|
+
$stdin.winsize[1]
|
622
|
+
rescue Exception => e
|
623
|
+
80
|
624
|
+
end
|
625
|
+
end
|
647
626
|
end
|
648
627
|
end
|
data/lib/bovem/shell.rb
CHANGED
@@ -19,17 +19,24 @@ module Bovem
|
|
19
19
|
# @param fatal [Boolean] If quit in case of fatal errors.
|
20
20
|
# @param show_errors [Boolean] Whether to show errors.
|
21
21
|
def handle_failure(e, access_error, not_found_error, general_error, entries, fatal, show_errors)
|
22
|
-
error_type =
|
23
|
-
message = e.message.gsub(/.+ - (.+)/, "\\1")
|
24
|
-
locale = self.i18n.shell
|
22
|
+
error_type, locale, final_entries = setup_error_handling(entries, fatal)
|
25
23
|
|
26
24
|
case e.class.to_s
|
27
|
-
when "Errno::EACCES" then @console.send(error_type, locale.send(access_error,
|
28
|
-
when "Errno::ENOENT" then @console.send(error_type, locale.send(not_found_error,
|
25
|
+
when "Errno::EACCES" then @console.send(error_type, locale.send(access_error, final_entries))
|
26
|
+
when "Errno::ENOENT" then @console.send(error_type, locale.send(not_found_error, final_entries))
|
29
27
|
else show_general_failure(e, general_error, entries, fatal) if show_errors
|
30
28
|
end
|
31
29
|
end
|
32
30
|
|
31
|
+
# Setups error handling.
|
32
|
+
#
|
33
|
+
# @param entries [Array] The list of entries which failed.
|
34
|
+
# @param fatal [Boolean] If quit in case of fatal errors.
|
35
|
+
# @return [Array] Variables for error handling
|
36
|
+
def setup_error_handling(entries, fatal)
|
37
|
+
[fatal ? :fatal : :error, self.i18n.shell, entries.length == 1 ? entries[0] : entries]
|
38
|
+
end
|
39
|
+
|
33
40
|
# Shows errors when a directory creation failed.
|
34
41
|
#
|
35
42
|
# @param e [Exception] The occurred exception.
|
data/lib/bovem/version.rb
CHANGED
@@ -11,12 +11,12 @@ describe Bovem::Configuration do
|
|
11
11
|
property :property
|
12
12
|
end
|
13
13
|
|
14
|
-
let(:log_file) { "/tmp/bovem-test-log-#{Time.now.strftime("%Y%m%d-%H
|
15
|
-
let(:test_prefix) { "/tmp/bovem-test-#{Time.now.strftime("%Y%m%d-%H
|
14
|
+
let(:log_file) { "/tmp/bovem-test-log-#{Time.now.strftime("%Y%m%d-%H%M%S")}" }
|
15
|
+
let(:test_prefix) { "/tmp/bovem-test-#{Time.now.strftime("%Y%m%d-%H%M%S")}" }
|
16
16
|
|
17
17
|
describe "#parse" do
|
18
18
|
it "reads a valid configuration file" do
|
19
|
-
file = ::File.open(
|
19
|
+
file = ::File.open(test_prefix, "w") {|f| f.write("config.property = 1234") }
|
20
20
|
|
21
21
|
config = BaseConfiguration.new(test_prefix)
|
22
22
|
expect(config.property).to eq(1234)
|
data/spec/bovem/console_spec.rb
CHANGED
@@ -66,20 +66,20 @@ describe Bovem::Console do
|
|
66
66
|
describe "#initialize" do
|
67
67
|
it "should correctly set defaults" do
|
68
68
|
expect(console.indentation).to eq(0)
|
69
|
-
expect(console.line_width).to eq(`tput cols`.to_integer)
|
70
69
|
expect(console.indentation_string).to eq(" ")
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
|
-
describe "#
|
75
|
-
it "should
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
describe "#line_width" do
|
74
|
+
it "should return a Fixnum greater than 0" do
|
75
|
+
w = console.line_width
|
76
|
+
expect(w).to be_a(Fixnum)
|
77
|
+
expect(w >= 0).to be_true
|
79
78
|
end
|
80
79
|
|
81
|
-
it "should
|
82
|
-
|
80
|
+
it "should use $stdin.winsize if available" do
|
81
|
+
$stdin.should_receive(:winsize)
|
82
|
+
console.line_width
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -181,13 +181,13 @@ describe Bovem::Console do
|
|
181
181
|
it "should correctly align messages" do
|
182
182
|
message = "ABCDE"
|
183
183
|
extended_message = "ABC\e[AD\e[3mE"
|
184
|
-
console.
|
184
|
+
console.stub(:line_width).and_return(80)
|
185
185
|
|
186
186
|
expect(console.format_right(message)).to eq("\e[A\e[0G\e[#{75}CABCDE")
|
187
187
|
expect(console.format_right(message, 10)).to eq("\e[A\e[0G\e[#{5}CABCDE")
|
188
188
|
expect(console.format_right(extended_message)).to eq("\e[A\e[0G\e[#{75}CABC\e[AD\e[3mE")
|
189
189
|
expect(console.format_right(message, nil, false)).to eq("\e[0G\e[#{75}CABCDE")
|
190
|
-
console.
|
190
|
+
console.stub(:line_width).and_return(10)
|
191
191
|
expect(console.format_right(message)).to eq("\e[A\e[0G\e[#{5}CABCDE")
|
192
192
|
end
|
193
193
|
end
|
@@ -302,7 +302,7 @@ describe Bovem::Console do
|
|
302
302
|
end
|
303
303
|
end
|
304
304
|
|
305
|
-
describe "status" do
|
305
|
+
describe "#status" do
|
306
306
|
it "should get the right status" do
|
307
307
|
expect(console.status(:ok, false, true, false)).to eq({label: " OK ", color: "bright green"})
|
308
308
|
expect(console.status(:pass, false, true, false)).to eq({label: "PASS", color: "bright cyan"})
|
@@ -390,25 +390,7 @@ describe Bovem::Console do
|
|
390
390
|
end
|
391
391
|
|
392
392
|
it "should hide echo to the user when the terminal shows echo" do
|
393
|
-
$stdin.
|
394
|
-
stty = %x{which stty}.strip
|
395
|
-
|
396
|
-
::Bovem::Console.should_receive(:execute).with("tput cols").and_return(80)
|
397
|
-
::Bovem::Console.should_receive(:execute).with("which stty").and_return(stty)
|
398
|
-
::Bovem::Console.should_receive(:execute).with(stty).and_return("speed 9600 baud;\nlflags: echoe echoke echoctl pendin\niflags: iutf8\noflags: -oxtabs\ncflags: cs8 -parenb")
|
399
|
-
::Bovem::Console.should_receive(:execute).with("#{stty} -echo")
|
400
|
-
::Bovem::Console.should_receive(:execute).with("#{stty} echo")
|
401
|
-
console.read(nil, nil, nil, false)
|
402
|
-
end
|
403
|
-
|
404
|
-
it "shouldn't hide echo again when the terminal already hides it" do
|
405
|
-
$stdin.stub(:gets).and_return("VALUE\n")
|
406
|
-
stty = %x{which stty}.strip
|
407
|
-
|
408
|
-
::Bovem::Console.should_receive(:execute).with("which stty").and_return(stty)
|
409
|
-
::Bovem::Console.should_receive(:execute).with(stty).and_return("speed 9600 baud;\nlflags: -echo echoe echoke echoctl pendin\niflags: iutf8\noflags: -oxtabs\ncflags: cs8 -parenb")
|
410
|
-
::Bovem::Console.should_not_receive("execute").with("#{stty} -echo")
|
411
|
-
::Bovem::Console.should_not_receive("execute").with("#{stty} echo")
|
393
|
+
$stdin.should_receive(:noecho).and_return("VALUE")
|
412
394
|
console.read(nil, nil, nil, false)
|
413
395
|
end
|
414
396
|
end
|
data/spec/bovem/shell_spec.rb
CHANGED
@@ -36,6 +36,10 @@ describe Bovem::Shell do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
describe "#run" do
|
39
|
+
before(:each) do
|
40
|
+
::Open4::stub(:popen4) do |_a, _b, _c, _d| OpenStruct.new(exitstatus: 0) end
|
41
|
+
end
|
42
|
+
|
39
43
|
it "should show a message" do
|
40
44
|
shell.console.should_receive("begin").with("MESSAGE")
|
41
45
|
shell.run("echo OK", "MESSAGE", true, false)
|
@@ -50,17 +54,22 @@ describe Bovem::Shell do
|
|
50
54
|
|
51
55
|
it "should only print the command if requested to" do
|
52
56
|
shell.console.should_receive("warn").with("Will run command: {mark=bright}\"echo OK\"{/mark}...")
|
53
|
-
::Open4.should_not_receive("
|
57
|
+
::Open4.should_not_receive("popen4")
|
54
58
|
shell.run("echo OK", nil, false, false)
|
55
59
|
end
|
56
60
|
|
57
61
|
it "should only execute a command" do
|
58
62
|
shell.console.should_not_receive("warn").with("Will run command: {mark=bright}\"echo OK\"{/mark}...")
|
59
|
-
::Open4.should_receive("popen4").and_return(::OpenStruct.new(exitstatus: 0))
|
60
63
|
shell.run("echo OK", nil, true, false)
|
61
64
|
end
|
62
65
|
|
63
66
|
it "should show a exit message" do
|
67
|
+
i = -1
|
68
|
+
::Open4::stub(:popen4) do |_a, _b, _c, _d|
|
69
|
+
i += 1
|
70
|
+
OpenStruct.new(exitstatus: i)
|
71
|
+
end
|
72
|
+
|
64
73
|
shell.console.should_receive(:status).with(:ok)
|
65
74
|
shell.run("echo OK", nil, true, true)
|
66
75
|
shell.console.should_receive(:status).with(:fail)
|
@@ -69,10 +78,16 @@ describe Bovem::Shell do
|
|
69
78
|
|
70
79
|
it "should print output" do
|
71
80
|
Kernel.should_receive("print").with("OK\n")
|
81
|
+
|
82
|
+
stdout = Object.new
|
83
|
+
stdout.stub(:each_line).and_yield("OK\n")
|
84
|
+
::Open4::stub(:popen4).and_yield(nil, nil, stdout, nil).and_return(OpenStruct.new(exitstatus: 0))
|
85
|
+
|
72
86
|
shell.run("echo OK", nil, true, false, true)
|
73
87
|
end
|
74
88
|
|
75
89
|
it "should raise a exception for failures" do
|
90
|
+
::Open4::stub(:popen4) {|_a, _b, _c, _d| OpenStruct.new(exitstatus: 1) }
|
76
91
|
expect { shell.run("echo1 OK", nil, true, false, false, false, false) }.to_not raise_error(SystemExit)
|
77
92
|
expect { shell.run("echo1 OK", nil, true, false, false) }.to raise_error(SystemExit)
|
78
93
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bovem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.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: 2013-02-
|
12
|
+
date: 2013-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: lazier
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.6.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.
|
29
|
+
version: 2.6.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: open4
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,118 +43,6 @@ dependencies:
|
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 1.3.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: rspec
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 2.12.0
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.12.0
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rake
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 10.0.3
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 10.0.3
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: simplecov
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 0.7.1
|
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.7.1
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: pry
|
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'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: yard
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.8.3
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.8.3
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: redcarpet
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ~>
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: 2.2.2
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: 2.2.2
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
|
-
name: github-markup
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
|
-
requirements:
|
147
|
-
- - ~>
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: 0.7.5
|
150
|
-
type: :development
|
151
|
-
prerelease: false
|
152
|
-
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ~>
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 0.7.5
|
158
46
|
description: A collection of utilities for developers.
|
159
47
|
email:
|
160
48
|
- shogun_panda@me.com
|
@@ -163,10 +51,10 @@ extensions: []
|
|
163
51
|
extra_rdoc_files: []
|
164
52
|
files:
|
165
53
|
- .gitignore
|
54
|
+
- .travis-gemfile
|
166
55
|
- .travis.yml
|
167
56
|
- .yardopts
|
168
57
|
- Gemfile
|
169
|
-
- Gemfile.lock
|
170
58
|
- README.md
|
171
59
|
- Rakefile
|
172
60
|
- bovem.gemspec
|
@@ -233,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
121
|
requirements:
|
234
122
|
- - ! '>='
|
235
123
|
- !ruby/object:Gem::Version
|
236
|
-
version: 1.9.
|
124
|
+
version: 1.9.3
|
237
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
126
|
none: false
|
239
127
|
requirements:
|