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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.simplecov +7 -6
- data/Gemfile +33 -28
- data/README.md +1 -1
- data/Rakefile +8 -1
- data/doc/colors.md +2 -2
- data/doc/commands.md +2 -2
- data/doc/logic_converters.md +5 -5
- data/doc/models.md +5 -5
- data/fedux_org-stdlib.gemspec +3 -7
- data/lib/fedux_org_stdlib.rb +13 -0
- data/lib/fedux_org_stdlib/app_config.rb +247 -0
- data/lib/fedux_org_stdlib/ci.rb +6 -0
- data/lib/fedux_org_stdlib/colors/html_color.rb +18 -0
- data/lib/fedux_org_stdlib/command.rb +10 -0
- data/lib/fedux_org_stdlib/command/command_result.rb +13 -0
- data/lib/fedux_org_stdlib/command/run_command.rb +55 -0
- data/lib/fedux_org_stdlib/command/which.rb +60 -0
- data/lib/fedux_org_stdlib/core_ext/array.rb +6 -0
- data/lib/fedux_org_stdlib/core_ext/string.rb +3 -0
- data/lib/fedux_org_stdlib/environment.rb +32 -0
- data/lib/fedux_org_stdlib/filesystem.rb +248 -0
- data/lib/fedux_org_stdlib/filesystem/exceptions.rb +12 -0
- data/lib/fedux_org_stdlib/logging.rb +12 -0
- data/lib/fedux_org_stdlib/logging/logger.rb +79 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logging/severity.rb +1 -0
- data/lib/fedux_org_stdlib/logic_converters.rb +11 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/logic_converters/exceptions.rb +1 -0
- data/lib/fedux_org_stdlib/logic_converters/logic_converter.rb +39 -0
- data/lib/fedux_org_stdlib/logic_converters/on_off_converter.rb +35 -0
- data/lib/fedux_org_stdlib/logic_converters/true_false_converter.rb +34 -0
- data/lib/fedux_org_stdlib/logic_converters/y_n_converter.rb +34 -0
- data/lib/fedux_org_stdlib/logic_converters/yes_no_converter.rb +34 -0
- data/lib/fedux_org_stdlib/models.rb +5 -0
- data/lib/fedux_org_stdlib/models/base_model.rb +129 -0
- data/lib/fedux_org_stdlib/models/class_based_model.rb +67 -0
- data/lib/fedux_org_stdlib/models/exceptions.rb +40 -0
- data/lib/fedux_org_stdlib/models/filesystem_based_model.rb +98 -0
- data/lib/fedux_org_stdlib/project.rb +6 -0
- data/lib/fedux_org_stdlib/project/generators/taskjuggler.rb +35 -0
- data/lib/fedux_org_stdlib/project/logger.rb +12 -0
- data/lib/fedux_org_stdlib/project/plan.rb +26 -0
- data/lib/fedux_org_stdlib/project/report.rb +63 -0
- data/lib/fedux_org_stdlib/rake.rb +8 -0
- data/lib/fedux_org_stdlib/rake/exceptions.rb +9 -0
- data/lib/{fedux_org/stdlib → fedux_org_stdlib}/rake/project.rb +4 -4
- data/lib/fedux_org_stdlib/rake/project_task.rb +29 -0
- data/lib/fedux_org_stdlib/rake/shell_task.rb +45 -0
- data/lib/fedux_org_stdlib/rake/sub_task.rb +26 -0
- data/lib/fedux_org_stdlib/rake/task.rb +118 -0
- data/lib/fedux_org_stdlib/rake/version_bump_task.rb +56 -0
- data/lib/fedux_org_stdlib/rake_tasks.rb +8 -0
- data/lib/fedux_org_stdlib/rake_tasks/console.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/documentation.rb +2 -0
- data/lib/fedux_org_stdlib/rake_tasks/documentation/yard.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems.rb +3 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems/bundler.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/gems/package.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/project.rb +1 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report.rb +3 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/generate.rb +10 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/project/report/open_shortcut.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa.rb +4 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa/rubocop.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/qa/travis.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/terminal.rb +9 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests.rb +4 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/cucumber.rb +13 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/rspec.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/tests/travis.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/version.rb +6 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/bump.rb +8 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/restore.rb +11 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/show.rb +12 -0
- data/lib/fedux_org_stdlib/rake_tasks/version/show_shortcut.rb +9 -0
- data/lib/fedux_org_stdlib/require_files.rb +27 -0
- data/lib/fedux_org_stdlib/version.rb +5 -0
- data/lib/fedux_org_stdlib/version_management/exceptions.rb +9 -0
- data/lib/fedux_org_stdlib/version_management/library_builder.rb +12 -0
- data/lib/fedux_org_stdlib/version_management/ruby_library.rb +13 -0
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file.rb +78 -0
- data/lib/fedux_org_stdlib/version_management/rubygem_version_file_parser.rb +22 -0
- data/lib/fedux_org_stdlib/version_management/version.rb +25 -0
- data/lib/fedux_org_stdlib/version_management/version_builder.rb +12 -0
- data/lib/fedux_org_stdlib/versionable.rb +18 -0
- data/rakefiles/default.rake +8 -1
- data/rakefiles/travis.rake +1 -1
- data/script/console +1 -1
- data/script/terminal +3 -2
- data/spec/app_config_spec.rb +7 -0
- data/spec/colors/html_color_spec.rb +7 -14
- data/spec/command/run_command_spec.rb +9 -10
- data/spec/command/which_spec.rb +8 -9
- data/spec/environment_spec.rb +12 -11
- data/spec/logger/logger_spec.rb +17 -16
- data/spec/logic_converters/on_off_converter_spec.rb +8 -7
- data/spec/logic_converters/true_false_converter_spec.rb +8 -7
- data/spec/logic_converters/y_n_converter_spec.rb +8 -7
- data/spec/logic_converters/yes_no_converter_spec.rb +8 -7
- data/spec/models/base_model_spec.rb +7 -7
- data/spec/models/class_based_model_spec.rb +37 -39
- data/spec/models/filesystem_based_model_spec.rb +24 -24
- data/spec/project/plan_spec.rb +6 -5
- data/spec/project/report_spec.rb +35 -29
- data/spec/project/taskjuggler_spec.rb +13 -12
- data/spec/spec_helper.rb +15 -38
- data/spec/support/environment.rb +16 -0
- data/spec/support/filesystem.rb +19 -0
- data/spec/support/reporting.rb +2 -0
- data/spec/support/rspec.rb +5 -0
- data/spec/support/string.rb +2 -0
- data/spec/version_management/library_builder_spec.rb +5 -4
- data/spec/version_management/ruby_library_spec.rb +5 -4
- data/spec/version_management/rubygem_version_file_parser_spec.rb +27 -16
- data/spec/version_management/rubygem_version_file_spec.rb +56 -54
- data/spec/version_management/version_builder_spec.rb +5 -4
- data/spec/version_management/version_spec.rb +16 -16
- metadata +104 -110
- data/lib/fedux_org/stdlib.rb +0 -15
- data/lib/fedux_org/stdlib/colors/html_color.rb +0 -19
- data/lib/fedux_org/stdlib/command.rb +0 -11
- data/lib/fedux_org/stdlib/command/command_result.rb +0 -14
- data/lib/fedux_org/stdlib/command/run_command.rb +0 -55
- data/lib/fedux_org/stdlib/command/which.rb +0 -67
- data/lib/fedux_org/stdlib/environment.rb +0 -31
- data/lib/fedux_org/stdlib/filesystem.rb +0 -247
- data/lib/fedux_org/stdlib/filesystem/exceptions.rb +0 -13
- data/lib/fedux_org/stdlib/logging.rb +0 -13
- data/lib/fedux_org/stdlib/logging/logger.rb +0 -79
- data/lib/fedux_org/stdlib/logic_converters.rb +0 -12
- data/lib/fedux_org/stdlib/logic_converters/logic_converter.rb +0 -40
- data/lib/fedux_org/stdlib/logic_converters/on_off_converter.rb +0 -36
- data/lib/fedux_org/stdlib/logic_converters/true_false_converter.rb +0 -35
- data/lib/fedux_org/stdlib/logic_converters/y_n_converter.rb +0 -35
- data/lib/fedux_org/stdlib/logic_converters/yes_no_converter.rb +0 -35
- data/lib/fedux_org/stdlib/models.rb +0 -4
- data/lib/fedux_org/stdlib/models/base_model.rb +0 -129
- data/lib/fedux_org/stdlib/models/class_based_model.rb +0 -76
- data/lib/fedux_org/stdlib/models/exceptions.rb +0 -41
- data/lib/fedux_org/stdlib/models/filesystem_based_model.rb +0 -99
- data/lib/fedux_org/stdlib/project.rb +0 -5
- data/lib/fedux_org/stdlib/project/generators/taskjuggler.rb +0 -41
- data/lib/fedux_org/stdlib/project/logger.rb +0 -13
- data/lib/fedux_org/stdlib/project/plan.rb +0 -15
- data/lib/fedux_org/stdlib/project/report.rb +0 -67
- data/lib/fedux_org/stdlib/rake.rb +0 -7
- data/lib/fedux_org/stdlib/rake/console.rb +0 -3
- data/lib/fedux_org/stdlib/rake/documentation.rb +0 -1
- data/lib/fedux_org/stdlib/rake/documentation/yard.rb +0 -14
- data/lib/fedux_org/stdlib/rake/gems.rb +0 -2
- data/lib/fedux_org/stdlib/rake/gems/bundler.rb +0 -12
- data/lib/fedux_org/stdlib/rake/gems/package.rb +0 -7
- data/lib/fedux_org/stdlib/rake/library.rb +0 -8
- data/lib/fedux_org/stdlib/rake/terminal.rb +0 -9
- data/lib/fedux_org/stdlib/rake/tests.rb +0 -3
- data/lib/fedux_org/stdlib/rake/tests/cucumber.rb +0 -6
- data/lib/fedux_org/stdlib/rake/tests/rspec.rb +0 -6
- data/lib/fedux_org/stdlib/rake/tests/travis.rb +0 -15
- data/lib/fedux_org/stdlib/rake/travis.rb +0 -1
- data/lib/fedux_org/stdlib/rake/travis/lint.rb +0 -10
- data/lib/fedux_org/stdlib/rake/version.rb +0 -4
- data/lib/fedux_org/stdlib/rake/version/base.rb +0 -7
- data/lib/fedux_org/stdlib/rake/version/bump.rb +0 -78
- data/lib/fedux_org/stdlib/rake/version/restore.rb +0 -9
- data/lib/fedux_org/stdlib/rake/version/show.rb +0 -9
- data/lib/fedux_org/stdlib/rake/version/show_shortcut.rb +0 -6
- data/lib/fedux_org/stdlib/version.rb +0 -6
- data/lib/fedux_org/stdlib/version_management/library_builder.rb +0 -15
- data/lib/fedux_org/stdlib/version_management/ruby_library.rb +0 -14
- data/lib/fedux_org/stdlib/version_management/rubygem_version_file.rb +0 -90
- data/lib/fedux_org/stdlib/version_management/rubygem_version_file_parser.rb +0 -18
- data/lib/fedux_org/stdlib/version_management/version.rb +0 -33
- data/lib/fedux_org/stdlib/version_management/version_builder.rb +0 -15
|
@@ -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,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,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
|
data/rakefiles/default.rake
CHANGED
data/rakefiles/travis.rake
CHANGED
data/script/console
CHANGED
data/script/terminal
CHANGED
|
@@ -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/
|
|
10
|
-
tmux.new_window(:name => 'logging', :command => 'vim -c \"NERDTree lib/
|
|
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
|
|
@@ -1,31 +1,24 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
2
|
-
require '
|
|
3
|
+
require 'fedux_org_stdlib/colors/html_color'
|
|
3
4
|
|
|
4
|
-
describe
|
|
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
|
-
|
|
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(
|
|
12
|
+
result = klass.new.run_command('echo hello_world')
|
|
14
13
|
|
|
15
|
-
expect(
|
|
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(
|
|
18
|
+
result = klass.new.run_command('echo hello_world >&2')
|
|
20
19
|
|
|
21
|
-
expect(
|
|
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(
|
|
24
|
+
result = klass.new.run_command('echo hello_world >&2')
|
|
26
25
|
|
|
27
|
-
expect(
|
|
26
|
+
expect(result.status.exitstatus).to eq(0)
|
|
28
27
|
end
|
|
29
28
|
end
|
|
30
29
|
end
|
data/spec/command/which_spec.rb
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
3
|
+
require 'fedux_org_stdlib/command/which'
|
|
2
4
|
|
|
3
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
40
|
+
expect(klass.new.which('which', paths: ['/usr/bin'], pathexts: [''])).to eq('/usr/bin/which')
|
|
42
41
|
end
|
|
43
42
|
end
|
|
44
43
|
end
|
data/spec/environment_spec.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
require 'spec_helper'
|
|
2
3
|
|
|
3
|
-
describe
|
|
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
|
|
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(
|
|
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
|
|
22
|
+
include FeduxOrgStdlib::Environment
|
|
22
23
|
|
|
23
24
|
def test_env
|
|
24
|
-
isolated_environment(
|
|
25
|
+
isolated_environment({}, { clear: true }) do
|
|
25
26
|
|
|
26
27
|
#are set by the terminal and can hardly be cleared
|
|
27
|
-
ENV.delete(
|
|
28
|
-
ENV.delete(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
57
|
+
expect(klass.new.test_env).to eq('TEST')
|
|
57
58
|
end
|
|
58
59
|
end
|
|
59
60
|
end
|