fedux_org-stdlib 0.3.2 → 0.6.3

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 (175) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.simplecov +7 -6
  4. data/Gemfile +33 -28
  5. data/README.md +1 -1
  6. data/Rakefile +8 -1
  7. data/doc/colors.md +2 -2
  8. data/doc/commands.md +2 -2
  9. data/doc/logic_converters.md +5 -5
  10. data/doc/models.md +5 -5
  11. data/fedux_org-stdlib.gemspec +3 -7
  12. data/lib/fedux_org_stdlib.rb +13 -0
  13. data/lib/fedux_org_stdlib/app_config.rb +247 -0
  14. data/lib/fedux_org_stdlib/ci.rb +6 -0
  15. data/lib/fedux_org_stdlib/colors/html_color.rb +18 -0
  16. data/lib/fedux_org_stdlib/command.rb +10 -0
  17. data/lib/fedux_org_stdlib/command/command_result.rb +13 -0
  18. data/lib/fedux_org_stdlib/command/run_command.rb +55 -0
  19. data/lib/fedux_org_stdlib/command/which.rb +60 -0
  20. data/lib/fedux_org_stdlib/core_ext/array.rb +6 -0
  21. data/lib/fedux_org_stdlib/core_ext/string.rb +3 -0
  22. data/lib/fedux_org_stdlib/environment.rb +32 -0
  23. data/lib/fedux_org_stdlib/filesystem.rb +248 -0
  24. data/lib/fedux_org_stdlib/filesystem/exceptions.rb +12 -0
  25. data/lib/fedux_org_stdlib/logging.rb +12 -0
  26. data/lib/fedux_org_stdlib/logging/logger.rb +79 -0
  27. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logging/severity.rb +1 -0
  28. data/lib/fedux_org_stdlib/logic_converters.rb +11 -0
  29. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logic_converters/exceptions.rb +1 -0
  30. data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +39 -0
  31. data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +35 -0
  32. data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +34 -0
  33. data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +34 -0
  34. data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +34 -0
  35. data/lib/fedux_org_stdlib/models.rb +5 -0
  36. data/lib/fedux_org_stdlib/models/base_model.rb +129 -0
  37. data/lib/fedux_org_stdlib/models/class_based_model.rb +67 -0
  38. data/lib/fedux_org_stdlib/models/exceptions.rb +40 -0
  39. data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +98 -0
  40. data/lib/fedux_org_stdlib/project.rb +6 -0
  41. data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +35 -0
  42. data/lib/fedux_org_stdlib/project/logger.rb +12 -0
  43. data/lib/fedux_org_stdlib/project/plan.rb +26 -0
  44. data/lib/fedux_org_stdlib/project/report.rb +63 -0
  45. data/lib/fedux_org_stdlib/rake.rb +8 -0
  46. data/lib/fedux_org_stdlib/rake/exceptions.rb +9 -0
  47. data/lib/{fedux_org/stdlib → fedux_org_stdlib}/rake/project.rb +4 -4
  48. data/lib/fedux_org_stdlib/rake/project_task.rb +29 -0
  49. data/lib/fedux_org_stdlib/rake/shell_task.rb +45 -0
  50. data/lib/fedux_org_stdlib/rake/sub_task.rb +26 -0
  51. data/lib/fedux_org_stdlib/rake/task.rb +118 -0
  52. data/lib/fedux_org_stdlib/rake/version_bump_task.rb +56 -0
  53. data/lib/fedux_org_stdlib/rake_tasks.rb +8 -0
  54. data/lib/fedux_org_stdlib/rake_tasks/console.rb +11 -0
  55. data/lib/fedux_org_stdlib/rake_tasks/documentation.rb +2 -0
  56. data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +9 -0
  57. data/lib/fedux_org_stdlib/rake_tasks/gems.rb +3 -0
  58. data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +9 -0
  59. data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +9 -0
  60. data/lib/fedux_org_stdlib/rake_tasks/project.rb +1 -0
  61. data/lib/fedux_org_stdlib/rake_tasks/project/report.rb +3 -0
  62. data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +10 -0
  63. data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +12 -0
  64. data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +9 -0
  65. data/lib/fedux_org_stdlib/rake_tasks/qa.rb +4 -0
  66. data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +13 -0
  67. data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +13 -0
  68. data/lib/fedux_org_stdlib/rake_tasks/terminal.rb +9 -0
  69. data/lib/fedux_org_stdlib/rake_tasks/tests.rb +4 -0
  70. data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +13 -0
  71. data/lib/fedux_org_stdlib/rake_tasks/tests/rspec.rb +12 -0
  72. data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +11 -0
  73. data/lib/fedux_org_stdlib/rake_tasks/version.rb +6 -0
  74. data/lib/fedux_org_stdlib/rake_tasks/version/bump.rb +8 -0
  75. data/lib/fedux_org_stdlib/rake_tasks/version/restore.rb +11 -0
  76. data/lib/fedux_org_stdlib/rake_tasks/version/show.rb +12 -0
  77. data/lib/fedux_org_stdlib/rake_tasks/version/show_shortcut.rb +9 -0
  78. data/lib/fedux_org_stdlib/require_files.rb +27 -0
  79. data/lib/fedux_org_stdlib/version.rb +5 -0
  80. data/lib/fedux_org_stdlib/version_management/exceptions.rb +9 -0
  81. data/lib/fedux_org_stdlib/version_management/library_builder.rb +12 -0
  82. data/lib/fedux_org_stdlib/version_management/ruby_library.rb +13 -0
  83. data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +78 -0
  84. data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +22 -0
  85. data/lib/fedux_org_stdlib/version_management/version.rb +25 -0
  86. data/lib/fedux_org_stdlib/version_management/version_builder.rb +12 -0
  87. data/lib/fedux_org_stdlib/versionable.rb +18 -0
  88. data/rakefiles/default.rake +8 -1
  89. data/rakefiles/travis.rake +1 -1
  90. data/script/console +1 -1
  91. data/script/terminal +3 -2
  92. data/spec/app_config_spec.rb +7 -0
  93. data/spec/colors/html_color_spec.rb +7 -14
  94. data/spec/command/run_command_spec.rb +9 -10
  95. data/spec/command/which_spec.rb +8 -9
  96. data/spec/environment_spec.rb +12 -11
  97. data/spec/logger/logger_spec.rb +17 -16
  98. data/spec/logic_converters/on_off_converter_spec.rb +8 -7
  99. data/spec/logic_converters/true_false_converter_spec.rb +8 -7
  100. data/spec/logic_converters/y_n_converter_spec.rb +8 -7
  101. data/spec/logic_converters/yes_no_converter_spec.rb +8 -7
  102. data/spec/models/base_model_spec.rb +7 -7
  103. data/spec/models/class_based_model_spec.rb +37 -39
  104. data/spec/models/filesystem_based_model_spec.rb +24 -24
  105. data/spec/project/plan_spec.rb +6 -5
  106. data/spec/project/report_spec.rb +35 -29
  107. data/spec/project/taskjuggler_spec.rb +13 -12
  108. data/spec/spec_helper.rb +15 -38
  109. data/spec/support/environment.rb +16 -0
  110. data/spec/support/filesystem.rb +19 -0
  111. data/spec/support/reporting.rb +2 -0
  112. data/spec/support/rspec.rb +5 -0
  113. data/spec/support/string.rb +2 -0
  114. data/spec/version_management/library_builder_spec.rb +5 -4
  115. data/spec/version_management/ruby_library_spec.rb +5 -4
  116. data/spec/version_management/rubygem_version_file_parser_spec.rb +27 -16
  117. data/spec/version_management/rubygem_version_file_spec.rb +56 -54
  118. data/spec/version_management/version_builder_spec.rb +5 -4
  119. data/spec/version_management/version_spec.rb +16 -16
  120. metadata +104 -110
  121. data/lib/fedux_org/stdlib.rb +0 -15
  122. data/lib/fedux_org/stdlib/colors/html_color.rb +0 -19
  123. data/lib/fedux_org/stdlib/command.rb +0 -11
  124. data/lib/fedux_org/stdlib/command/command_result.rb +0 -14
  125. data/lib/fedux_org/stdlib/command/run_command.rb +0 -55
  126. data/lib/fedux_org/stdlib/command/which.rb +0 -67
  127. data/lib/fedux_org/stdlib/environment.rb +0 -31
  128. data/lib/fedux_org/stdlib/filesystem.rb +0 -247
  129. data/lib/fedux_org/stdlib/filesystem/exceptions.rb +0 -13
  130. data/lib/fedux_org/stdlib/logging.rb +0 -13
  131. data/lib/fedux_org/stdlib/logging/logger.rb +0 -79
  132. data/lib/fedux_org/stdlib/logic_converters.rb +0 -12
  133. data/lib/fedux_org/stdlib/logic_converters/logic_converter.rb +0 -40
  134. data/lib/fedux_org/stdlib/logic_converters/on_off_converter.rb +0 -36
  135. data/lib/fedux_org/stdlib/logic_converters/true_false_converter.rb +0 -35
  136. data/lib/fedux_org/stdlib/logic_converters/y_n_converter.rb +0 -35
  137. data/lib/fedux_org/stdlib/logic_converters/yes_no_converter.rb +0 -35
  138. data/lib/fedux_org/stdlib/models.rb +0 -4
  139. data/lib/fedux_org/stdlib/models/base_model.rb +0 -129
  140. data/lib/fedux_org/stdlib/models/class_based_model.rb +0 -76
  141. data/lib/fedux_org/stdlib/models/exceptions.rb +0 -41
  142. data/lib/fedux_org/stdlib/models/filesystem_based_model.rb +0 -99
  143. data/lib/fedux_org/stdlib/project.rb +0 -5
  144. data/lib/fedux_org/stdlib/project/generators/taskjuggler.rb +0 -41
  145. data/lib/fedux_org/stdlib/project/logger.rb +0 -13
  146. data/lib/fedux_org/stdlib/project/plan.rb +0 -15
  147. data/lib/fedux_org/stdlib/project/report.rb +0 -67
  148. data/lib/fedux_org/stdlib/rake.rb +0 -7
  149. data/lib/fedux_org/stdlib/rake/console.rb +0 -3
  150. data/lib/fedux_org/stdlib/rake/documentation.rb +0 -1
  151. data/lib/fedux_org/stdlib/rake/documentation/yard.rb +0 -14
  152. data/lib/fedux_org/stdlib/rake/gems.rb +0 -2
  153. data/lib/fedux_org/stdlib/rake/gems/bundler.rb +0 -12
  154. data/lib/fedux_org/stdlib/rake/gems/package.rb +0 -7
  155. data/lib/fedux_org/stdlib/rake/library.rb +0 -8
  156. data/lib/fedux_org/stdlib/rake/terminal.rb +0 -9
  157. data/lib/fedux_org/stdlib/rake/tests.rb +0 -3
  158. data/lib/fedux_org/stdlib/rake/tests/cucumber.rb +0 -6
  159. data/lib/fedux_org/stdlib/rake/tests/rspec.rb +0 -6
  160. data/lib/fedux_org/stdlib/rake/tests/travis.rb +0 -15
  161. data/lib/fedux_org/stdlib/rake/travis.rb +0 -1
  162. data/lib/fedux_org/stdlib/rake/travis/lint.rb +0 -10
  163. data/lib/fedux_org/stdlib/rake/version.rb +0 -4
  164. data/lib/fedux_org/stdlib/rake/version/base.rb +0 -7
  165. data/lib/fedux_org/stdlib/rake/version/bump.rb +0 -78
  166. data/lib/fedux_org/stdlib/rake/version/restore.rb +0 -9
  167. data/lib/fedux_org/stdlib/rake/version/show.rb +0 -9
  168. data/lib/fedux_org/stdlib/rake/version/show_shortcut.rb +0 -6
  169. data/lib/fedux_org/stdlib/version.rb +0 -6
  170. data/lib/fedux_org/stdlib/version_management/library_builder.rb +0 -15
  171. data/lib/fedux_org/stdlib/version_management/ruby_library.rb +0 -14
  172. data/lib/fedux_org/stdlib/version_management/rubygem_version_file.rb +0 -90
  173. data/lib/fedux_org/stdlib/version_management/rubygem_version_file_parser.rb +0 -18
  174. data/lib/fedux_org/stdlib/version_management/version.rb +0 -33
  175. data/lib/fedux_org/stdlib/version_management/version_builder.rb +0 -15
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/rake/sub_task'
3
+ require 'fedux_org_stdlib/rake_tasks/version/show'
4
+
5
+ FeduxOrgStdlib::Rake::SubTask.new(
6
+ name: 'version',
7
+ description: 'Show version',
8
+ sub_tasks: %w{ version:show }
9
+ )
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/core_ext/array'
3
+
4
+ module FeduxOrgStdlib
5
+ module RequireFiles
6
+ def require_library(libraries, message_template = 'You need to install %s to make "%s" work.')
7
+ libraries = Array(libraries)
8
+
9
+ begin
10
+ libraries.each { |l| require l }
11
+ rescue LoadError => e
12
+ $stderr.puts format(message_template, libraries.map { |l| l.split(%r{/}).first }.uniq.to_list, klass.to_s, caller[1].split(/:/)[0,2].join(':'))
13
+ $stderr.puts
14
+ $stderr.puts e.message
15
+ exit 1
16
+ end
17
+ end
18
+
19
+ def require_installed_gem(gems, message_template = 'You need to install %s to make "%s" work.')
20
+ gems = Array(gems)
21
+
22
+ raise LoadError, JSON.dump(gems: gems) if gems.any? { |name| Gem::Specification.find_all_by_name(name).blank? }
23
+ end
24
+ end
25
+ end
26
+
27
+ include FeduxOrgStdlib::RequireFiles
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+ # FeduxOrgStdlib
3
+ module FeduxOrgStdlib
4
+ VERSION = '0.6.3'
5
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+ module FeduxOrgStdlib
3
+ module VersionManagement
4
+ module Exceptions
5
+ # If version cannot be extracted
6
+ class VersionFileInvalid < StandardError; end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/version_management/ruby_library'
3
+
4
+ module FeduxOrgStdlib
5
+ module VersionManagement
6
+ class LibraryBuilder
7
+ def build_from( *args )
8
+ RubyLibrary.new( *args )
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+ module FeduxOrgStdlib
3
+ module VersionManagement
4
+ class RubyLibrary
5
+
6
+ attr_reader :module_names
7
+
8
+ def initialize( module_names )
9
+ @module_names = module_names
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/require_files'
3
+ require_library %w{ erubis forwardable active_support/core_ext/string/strip active_support/core_ext/object/blank }
4
+
5
+ require 'fedux_org_stdlib/version_management/rubygem_version_file_parser'
6
+ require 'fedux_org_stdlib/version_management/version_builder'
7
+ require 'fedux_org_stdlib/version_management/library_builder'
8
+ require 'fedux_org_stdlib/version_management/exceptions'
9
+
10
+ module FeduxOrgStdlib
11
+ module VersionManagement
12
+ class RubygemVersionFile
13
+ extend Forwardable
14
+
15
+ def_delegators :@version, :bump
16
+
17
+ def initialize(version, library)
18
+ @version = version
19
+ @library = library
20
+ end
21
+
22
+ def version
23
+ @version.to_s
24
+ end
25
+
26
+ def version=(v)
27
+ @version.update(v)
28
+ end
29
+
30
+ def write(path)
31
+ File.write(path, to_s)
32
+ end
33
+
34
+ def self.read(path, parser = RubygemVersionFileParser.new, version_builder = VersionBuilder.new, library_builder = LibraryBuilder.new)
35
+ parser.parse(path)
36
+
37
+ version = version_builder.build_from(parser.version)
38
+ library = library_builder.build_from(parser.modules)
39
+
40
+ RubygemVersionFile.new(version, library)
41
+ end
42
+
43
+ def to_s
44
+ klass = Class.new do
45
+ attr_reader :version, :library
46
+
47
+ def initialize(version, module_names)
48
+ @version = version
49
+ @module_names = module_names
50
+ end
51
+
52
+ def prefix(n)
53
+ ' ' * 2 * n
54
+ end
55
+ end
56
+
57
+ Erubis::Eruby.new(template).evaluate(klass.new(@version, @library.module_names))
58
+ end
59
+
60
+ private
61
+
62
+ def template
63
+ <<-EOF.strip_heredoc
64
+ # encoding: utf-8
65
+ # <%= @module_names.first %>
66
+ <% @module_names.each_with_index do |m,i| -%>
67
+ <%= prefix(i) %>module <%= m %>
68
+ <% end -%>
69
+ <%= prefix(@module_names.size) %>VERSION = '<%= @version %>'
70
+ <% (@module_names.size - 1).downto(0) do |i| -%>
71
+ <%= prefix(i) %>end
72
+ <% end -%>
73
+ EOF
74
+ end
75
+
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ require 'json'
3
+ require 'fedux_org_stdlib/version_management/exceptions'
4
+
5
+ module FeduxOrgStdlib
6
+ module VersionManagement
7
+ class RubygemVersionFileParser
8
+
9
+ attr_reader :version, :modules
10
+
11
+ def parse(file)
12
+ data = File.read(file)
13
+
14
+ @version = data.match(/(?:VERSION|Version)\s+=\s+["']([^'"]+)["']/) { $1 }
15
+ @modules = data.scan( /^\s*module\s+([A-Z][A-Za-z0-9]+(?:::[A-Z][A-Z0-9a-z]+)*)$/x ).flatten
16
+
17
+ raise Exceptions::VersionFileInvalid, JSON.dump(file: file) if self.version.blank?
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/require_files'
3
+ require_library %w{ versionomy forwardable }
4
+
5
+ module FeduxOrgStdlib
6
+ module VersionManagement
7
+ class Version
8
+ extend Forwardable
9
+
10
+ def_delegators :@version, :to_s
11
+
12
+ def initialize(version)
13
+ @version = Versionomy.parse(version)
14
+ end
15
+
16
+ def update( *args )
17
+ initialize( *args )
18
+ end
19
+
20
+ def bump(type)
21
+ @version = @version.bump(type)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/version_management/version'
3
+
4
+ module FeduxOrgStdlib
5
+ module VersionManagement
6
+ class VersionBuilder
7
+ def build_from(*args)
8
+ Version.new(*args)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/rake/exceptions'
3
+
4
+ module FeduxOrgStdlib
5
+ module Versionable
6
+ def version_file(working_directory = Dir.getwd)
7
+ paths = []
8
+ paths << File.join(working_directory, 'lib', '*', 'version.rb')
9
+ paths << File.join(working_directory, 'lib', '*', '*', 'version.rb')
10
+
11
+ file = Dir.glob(paths.shift).first while !paths.blank? and file.blank?
12
+
13
+ raise Exceptions::VersionFileNotFound, JSON.dump(message: 'Cannot find version file') unless file
14
+
15
+ file
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,10 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'fedux_org/stdlib/rake'
3
+ $LOAD_PATH << File.expand_path('../lib', __FILE__)
4
+
5
+ require 'fedux_org_stdlib/rake_tasks'
6
+
7
+ desc 'Show help for rake'
8
+ task :default do
9
+ sh 'bundle exec rake -T'
10
+ end
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'fedux_org/stdlib/rake/tests/travis'
3
+ require 'fedux_org_stdlib/rake/tests/travis'
@@ -2,7 +2,7 @@
2
2
 
3
3
  $LOAD_PATH << File.expand_path('../lib', File.dirname(__FILE__))
4
4
 
5
- require 'fedux_org/stdlib'
5
+ require 'fedux_org_stdlib'
6
6
  require 'pry'
7
7
 
8
8
  Pry.start
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # encoding: utf-8
2
3
 
3
4
  require 'tmrb'
4
5
 
@@ -6,7 +7,7 @@ tmux = TmRb::Multiplexer.new
6
7
  #creates an empty window
7
8
  tmux.new_session(:session_name => "fedux_org-stdlib")
8
9
 
9
- tmux.new_window(:name => 'models', :command => 'vim -c \"NERDTree lib/fedux_org/stdlib/models\"')
10
- tmux.new_window(:name => 'logging', :command => 'vim -c \"NERDTree lib/fedux_org/stdlib/logging\"')
10
+ tmux.new_window(:name => 'models', :command => 'vim -c \"NERDTree lib/fedux_org_stdlib/models\"')
11
+ tmux.new_window(:name => 'logging', :command => 'vim -c \"NERDTree lib/fedux_org_stdlib/logging\"')
11
12
  tmux.new_window(:name => 'spec', :command => 'vim -c \"NERDTree spec\"')
12
13
  tmux.start
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'fedux_org_stdlib/app_config'
4
+
5
+ RSpec.describe AppConfig do
6
+
7
+ end
@@ -1,31 +1,24 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
- require 'fedux_org/stdlib/colors/html_color'
3
+ require 'fedux_org_stdlib/colors/html_color'
3
4
 
4
- describe FeduxOrg::Stdlib::Colors::HtmlColor do
5
+ RSpec.describe FeduxOrgStdlib::Colors::HtmlColor do
5
6
  context '#valid?' do
6
7
 
7
8
  it 'suceeds if string is valid html color' do
8
- expect(
9
- FeduxOrg::Stdlib::Colors::HtmlColor.new( '#11aa11' ).valid?
10
- ).to be_true
9
+ expect(FeduxOrgStdlib::Colors::HtmlColor.new('#11aa11')).to be_valid
11
10
  end
12
11
 
13
12
  it 'fails if color does not start with #' do
14
- expect(
15
- FeduxOrg::Stdlib::Colors::HtmlColor.new( '111111' ).valid?
16
- ).to be_false
13
+ expect(FeduxOrgStdlib::Colors::HtmlColor.new('111111')).not_to be_valid
17
14
  end
18
15
 
19
16
  it 'fails if length is invalid' do
20
- expect(
21
- FeduxOrg::Stdlib::Colors::HtmlColor.new( '#111111111' ).valid?
22
- ).to be_false
17
+ expect(FeduxOrgStdlib::Colors::HtmlColor.new('#111111111')).not_to be_valid
23
18
  end
24
19
 
25
20
  it 'fails if no hex number is given' do
26
- expect(
27
- FeduxOrg::Stdlib::Colors::HtmlColor.new( '#ZZAAZZ' ).valid?
28
- ).to be_false
21
+ expect(FeduxOrgStdlib::Colors::HtmlColor.new('#ZZAAZZ')).not_to be_valid
29
22
  end
30
23
 
31
24
  end
@@ -1,30 +1,29 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
3
+ require 'fedux_org_stdlib/command/run_command'
2
4
 
3
- require 'fedux_org/stdlib/command/run_command'
4
-
5
- describe Command::RunCommand do
6
-
5
+ RSpec.describe Command::RunCommand do
7
6
  context '#run_command' do
8
7
  klass = Class.new do
9
8
  include Command::RunCommand
10
9
  end
11
10
 
12
11
  it 'captures stdout' do
13
- result = klass.new.run_command( 'echo hello_world' )
12
+ result = klass.new.run_command('echo hello_world')
14
13
 
15
- expect( result.stdout.chomp ).to eq( 'hello_world' )
14
+ expect(result.stdout.chomp).to eq('hello_world')
16
15
  end
17
16
 
18
17
  it 'captures stderr' do
19
- result = klass.new.run_command( 'echo hello_world >&2' )
18
+ result = klass.new.run_command('echo hello_world >&2')
20
19
 
21
- expect( result.stderr.chomp ).to eq( 'hello_world' )
20
+ expect(result.stderr.chomp).to eq('hello_world')
22
21
  end
23
22
 
24
23
  it 'captures exit status' do
25
- result = klass.new.run_command( 'echo hello_world >&2' )
24
+ result = klass.new.run_command('echo hello_world >&2')
26
25
 
27
- expect( result.status.exitstatus ).to eq( 0 )
26
+ expect(result.status.exitstatus).to eq(0)
28
27
  end
29
28
  end
30
29
  end
@@ -1,28 +1,27 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
3
+ require 'fedux_org_stdlib/command/which'
2
4
 
3
- require 'fedux_org/stdlib/command/which'
4
-
5
- describe Command::Which do
6
-
5
+ RSpec.describe Command::Which do
7
6
  context '#which' do
8
7
  klass = Class.new do
9
8
  include Command::Which
10
9
  end
11
10
 
12
11
  it 'returns full path for a valid command' do
13
- expect(klass.new.which( 'which' )).to eq( '/usr/bin/which' )
12
+ expect(klass.new.which('which')).to eq('/usr/bin/which')
14
13
  end
15
14
 
16
15
  it 'returns full path for a valid command although a full path is given' do
17
- expect(klass.new.which( '/usr/bin/which' )).to eq( '/usr/bin/which' )
16
+ expect(klass.new.which('/usr/bin/which')).to eq('/usr/bin/which')
18
17
  end
19
18
 
20
19
  it 'returns nil for a invalid command if a full path is given' do
21
- expect(klass.new.which( '/usr/bin/which1' )).to eq( nil )
20
+ expect(klass.new.which('/usr/bin/which1')).to eq(nil)
22
21
  end
23
22
 
24
23
  it 'returns nil if no executable can be found in path' do
25
- expect(klass.new.which('asdfasdf')).to eq( nil )
24
+ expect(klass.new.which('asdfasdf')).to eq(nil)
26
25
  end
27
26
 
28
27
  it 'uses paths string to search for command' do
@@ -38,7 +37,7 @@ describe Command::Which do
38
37
  end
39
38
 
40
39
  it 'uses pathexts array to search for command' do
41
- expect(klass.new.which( 'which', paths: ['/usr/bin'], pathexts: [''])).to eq('/usr/bin/which')
40
+ expect(klass.new.which('which', paths: ['/usr/bin'], pathexts: [''])).to eq('/usr/bin/which')
42
41
  end
43
42
  end
44
43
  end
@@ -1,10 +1,11 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
3
 
3
- describe FeduxOrg::Stdlib::Environment do
4
+ RSpec.describe FeduxOrgStdlib::Environment do
4
5
  context '#isolated_environment' do
5
6
  it 'runs command in isolated environment' do
6
7
  klass = Class.new do
7
- include FeduxOrg::Stdlib::Environment
8
+ include FeduxOrgStdlib::Environment
8
9
 
9
10
  def test_env
10
11
  isolated_environment 'TEST_VAR' => 'this is a test' do
@@ -13,37 +14,37 @@ describe FeduxOrg::Stdlib::Environment do
13
14
  end
14
15
  end
15
16
 
16
- expect( klass.new.test_env ).to eq( 'this is a test' )
17
+ expect(klass.new.test_env).to eq('this is a test')
17
18
  end
18
19
 
19
20
  it 'let you define an environment before running a command' do
20
21
  klass = Class.new do
21
- include FeduxOrg::Stdlib::Environment
22
+ include FeduxOrgStdlib::Environment
22
23
 
23
24
  def test_env
24
- isolated_environment( {}, { clear: true } ) do
25
+ isolated_environment({}, { clear: true }) do
25
26
 
26
27
  #are set by the terminal and can hardly be cleared
27
- ENV.delete( 'COLUMNS' )
28
- ENV.delete( 'LINES' )
28
+ ENV.delete('COLUMNS')
29
+ ENV.delete('LINES')
29
30
 
30
31
  ENV.to_hash
31
32
  end
32
33
  end
33
34
  end
34
35
 
35
- expect( klass.new.test_env ).to eq( {} )
36
+ expect(klass.new.test_env).to eq({})
36
37
  end
37
38
 
38
39
  it 'restores environment although an exception occured' do
39
40
  klass = Class.new do
40
- include FeduxOrg::Stdlib::Environment
41
+ include FeduxOrgStdlib::Environment
41
42
 
42
43
  def test_env
43
44
  ENV['TEST_VAR'] = 'TEST'
44
45
 
45
46
  begin
46
- isolated_environment( {}, { clear: true } ) do
47
+ isolated_environment({}, { clear: true }) do
47
48
  raise
48
49
  end
49
50
  rescue
@@ -53,7 +54,7 @@ describe FeduxOrg::Stdlib::Environment do
53
54
  end
54
55
  end
55
56
 
56
- expect( klass.new.test_env ).to eq( 'TEST' )
57
+ expect(klass.new.test_env).to eq('TEST')
57
58
  end
58
59
  end
59
60
  end