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.
Files changed (42) hide show
  1. data/.travis-gemfile +13 -0
  2. data/.travis.yml +4 -2
  3. data/Gemfile +13 -1
  4. data/bovem.gemspec +2 -10
  5. data/doc/Bovem.html +3 -3
  6. data/doc/Bovem/Configuration.html +14 -12
  7. data/doc/Bovem/Console.html +155 -301
  8. data/doc/Bovem/ConsoleMethods.html +3 -3
  9. data/doc/Bovem/ConsoleMethods/Interactions.html +36 -44
  10. data/doc/Bovem/ConsoleMethods/Interactions/ClassMethods.html +7 -7
  11. data/doc/Bovem/ConsoleMethods/Logging.html +62 -62
  12. data/doc/Bovem/ConsoleMethods/Logging/ClassMethods.html +7 -7
  13. data/doc/Bovem/ConsoleMethods/Output.html +59 -141
  14. data/doc/Bovem/ConsoleMethods/StyleHandling.html +3 -3
  15. data/doc/Bovem/ConsoleMethods/StyleHandling/ClassMethods.html +4 -4
  16. data/doc/Bovem/Errors.html +3 -3
  17. data/doc/Bovem/Errors/InvalidConfiguration.html +3 -3
  18. data/doc/Bovem/Errors/InvalidLogger.html +3 -3
  19. data/doc/Bovem/Logger.html +3 -3
  20. data/doc/Bovem/Shell.html +22 -22
  21. data/doc/Bovem/ShellMethods.html +3 -3
  22. data/doc/Bovem/ShellMethods/Directories.html +21 -21
  23. data/doc/Bovem/ShellMethods/Execute.html +21 -21
  24. data/doc/Bovem/ShellMethods/General.html +130 -20
  25. data/doc/Bovem/ShellMethods/Read.html +21 -21
  26. data/doc/Bovem/ShellMethods/Write.html +20 -20
  27. data/doc/Bovem/Version.html +5 -5
  28. data/doc/_index.html +4 -4
  29. data/doc/file.README.html +3 -3
  30. data/doc/frames.html +1 -1
  31. data/doc/index.html +3 -3
  32. data/doc/method_list.html +43 -51
  33. data/doc/top-level-namespace.html +3 -3
  34. data/lib/bovem.rb +1 -1
  35. data/lib/bovem/configuration.rb +12 -4
  36. data/lib/bovem/console.rb +25 -46
  37. data/lib/bovem/shell.rb +12 -5
  38. data/lib/bovem/version.rb +2 -2
  39. data/spec/bovem/configuration_spec.rb +3 -3
  40. data/spec/bovem/console_spec.rb +12 -30
  41. data/spec/bovem/shell_spec.rb +17 -2
  42. metadata +6 -118
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.8.3
9
+ &mdash; 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 Sat Feb 2 17:05:17 2013 by
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.3 (ruby-1.9.3).
108
+ 0.8.4 (ruby-1.9.3).
109
109
  </div>
110
110
 
111
111
  </body>
@@ -5,10 +5,10 @@
5
5
  #
6
6
 
7
7
  require "logger"
8
- require "lazier"
9
8
  require "open4"
10
9
  require "find"
11
10
  require "fileutils"
11
+ require "lazier"
12
12
 
13
13
  Lazier.load!(:object)
14
14
 
@@ -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
- self.tap do |config|
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
@@ -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 = @line_width
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
- @screen_width ||= self.get_screen_width
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
- with_echo_handling(echo) do
476
- begin
477
- catch(:reply) do
478
- while true do
479
- reply = validate_input_value(read_input_value(prompt, default_value), validator)
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
@@ -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 = fatal ? :fatal : :error
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, message))
28
- when "Errno::ENOENT" then @console.send(error_type, locale.send(not_found_error, message))
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.
@@ -14,10 +14,10 @@ module Bovem
14
14
  MAJOR = 2
15
15
 
16
16
  # The minor version.
17
- MINOR = 0
17
+ MINOR = 1
18
18
 
19
19
  # The patch version.
20
- PATCH = 3
20
+ PATCH = 0
21
21
 
22
22
  # The current version number of Bovem.
23
23
  STRING = [MAJOR, MINOR, PATCH].compact.join(".")
@@ -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:%M:%S")}" }
15
- let(:test_prefix) { "/tmp/bovem-test-#{Time.now.strftime("%Y%m%d-%H:%M:%S")}" }
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("#{test_prefix}", "w") {|f| f.write("config.property = 1234") }
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)
@@ -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 "#get_screen_width" do
75
- it "should execute \"tput cols\" and \"which stty\"" do
76
- ::Bovem::Console.should_receive(:execute).with("tput cols").at_least(1).and_call_original
77
- ::Bovem::Console.should_receive(:execute).with("which stty").at_least(1).and_call_original
78
- console.get_screen_width
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 return a number >= 0" do
82
- expect(console.get_screen_width).to be >= 0
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.screen_width = 80
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.screen_width = 10
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.stub(:gets).and_return("VALUE\n")
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
@@ -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("open4")
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.3
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-03 00:00:00.000000000 Z
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.5.0
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.5.0
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.2
124
+ version: 1.9.3
237
125
  required_rubygems_version: !ruby/object:Gem::Requirement
238
126
  none: false
239
127
  requirements: