cliutils 2.1.4 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +3 -2
- data/Gemfile +7 -0
- data/HISTORY.md +7 -0
- data/README.md +3 -1
- data/Rakefile +8 -1
- data/cliutils.gemspec +1 -0
- data/lib/cliutils/configuration.rb +1 -1
- data/lib/cliutils/constants.rb +1 -1
- data/lib/cliutils/ext/hash_extensions.rb +16 -12
- data/lib/cliutils/messaging.rb +2 -116
- data/lib/cliutils/messenger.rb +109 -0
- data/lib/cliutils/prefs/pref.rb +10 -10
- data/lib/cliutils/prefs/pref_actions/open_url_action.rb +1 -1
- data/lib/cliutils/prefs/pref_validators/filepath_exists_validator.rb +2 -0
- data/lib/cliutils/prefs/pref_validators/url_validator.rb +1 -1
- data/lib/cliutils/prefs.rb +1 -1
- data/lib/cliutils/pretty_io.rb +0 -10
- data/lib/cliutils.rb +1 -1
- data/spec/action/open_url_action_spec.rb +20 -0
- data/spec/action/pref_action_spec.rb +11 -0
- data/spec/behavior/capitalize_behavior_spec.rb +11 -0
- data/spec/behavior/expand_filepath_behavior_spec.rb +11 -0
- data/spec/behavior/lowercase_behavior_spec.rb +11 -0
- data/spec/behavior/pref_behavior_spec.rb +11 -0
- data/spec/behavior/prefix_behavior_spec.rb +12 -0
- data/spec/behavior/suffix_behavior_spec.rb +12 -0
- data/spec/behavior/titlecase_behavior_spec.rb +10 -0
- data/spec/behavior/uppercase_behavior_spec.rb +11 -0
- data/spec/configuration_spec.rb +37 -0
- data/spec/configurator_spec.rb +104 -0
- data/spec/ext/hash_extensions_spec.rb +54 -0
- data/spec/ext/logger_extensions_spec.rb +20 -0
- data/spec/ext/string_extensions_spec.rb +26 -0
- data/spec/messaging_spec.rb +91 -0
- data/spec/pref_spec.rb +144 -0
- data/spec/prefs_spec.rb +150 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/validator/alphabetic_validator_spec.rb +20 -0
- data/spec/validator/alphanumeric_validator_spec.rb +20 -0
- data/spec/validator/date_validator_spec.rb +20 -0
- data/spec/validator/datetime_validator_spec.rb +20 -0
- data/spec/validator/filepath_exists_validator_spec.rb +20 -0
- data/spec/validator/non_nil_validator_spec.rb +24 -0
- data/spec/validator/number_validator_spec.rb +20 -0
- data/spec/validator/pref_validator_spec.rb +11 -0
- data/spec/validator/time_validator_spec.rb +20 -0
- data/spec/validator/url_validator_spec.rb +20 -0
- data/{test/test_files → support}/configuration.yaml +1 -1
- data/support/prefstest.yaml +27 -0
- data/{test/test_files → support}/test_action.rb +0 -0
- data/support/test_action_empty.rb +7 -0
- data/{test/test_files → support}/test_behavior.rb +2 -2
- data/support/test_behavior_empty.rb +6 -0
- data/{test/test_files → support}/test_validator.rb +0 -2
- data/support/test_validator_empty.rb +7 -0
- data/test/pref_test.rb +0 -1
- data/test/prefs_test.rb +64 -1
- data/test/test_helper.rb +2 -2
- metadata +91 -67
- data/lib/cliutils/logger_delegator.rb +0 -49
- data/test/action_tests/open_url_action_test.rb +0 -12
- data/test/behavior_tests/capitalize_behavior_test.rb +0 -11
- data/test/behavior_tests/expand_filepath_behavior_test.rb +0 -11
- data/test/behavior_tests/lowercase_behavior_test.rb +0 -11
- data/test/behavior_tests/prefix_behavior_test.rb +0 -12
- data/test/behavior_tests/suffix_behavior_test.rb +0 -12
- data/test/behavior_tests/titlecase_behavior_test.rb +0 -11
- data/test/behavior_tests/uppercase_behavior_test.rb +0 -11
- data/test/configuration_test.rb +0 -49
- data/test/configurator_test.rb +0 -63
- data/test/hash_extensions_test.rb +0 -51
- data/test/logger_extensions_test.rb +0 -17
- data/test/messaging_test.rb +0 -53
- data/test/string_extesions_test.rb +0 -28
- data/test/test_files/prefstest.yaml +0 -38
- data/test/validator_tests/alphabetic_validator_test.rb +0 -22
- data/test/validator_tests/alphanumeric_validator_test.rb +0 -22
- data/test/validator_tests/date_validator_test.rb +0 -22
- data/test/validator_tests/datetime_validator_test.rb +0 -22
- data/test/validator_tests/filepath_exists_validator_test.rb +0 -22
- data/test/validator_tests/non_nil_validator_test.rb +0 -30
- data/test/validator_tests/number_validator_test.rb +0 -22
- data/test/validator_tests/time_validator_test.rb +0 -22
- data/test/validator_tests/url_validator_test.rb +0 -22
@@ -1,49 +0,0 @@
|
|
1
|
-
module CLIUtils
|
2
|
-
# LoggerDelegator Class
|
3
|
-
# Delegates certain Logger methods to a number of different
|
4
|
-
# targets.
|
5
|
-
class LoggerDelegator
|
6
|
-
# The endpoints to which delegation occurs.
|
7
|
-
# @return [Array]
|
8
|
-
attr_reader :targets
|
9
|
-
|
10
|
-
# Initializes and creates methods for the passed targets.
|
11
|
-
# @param [Logger] targets The endpoints to delegate to
|
12
|
-
# @return [void]
|
13
|
-
def initialize(targets)
|
14
|
-
@targets = targets
|
15
|
-
LoggerDelegator.delegate
|
16
|
-
end
|
17
|
-
|
18
|
-
# Attaches a new target to delegate to.
|
19
|
-
# @param [Hash] target A hash describing a reference key and a Logger
|
20
|
-
# @return [void]
|
21
|
-
def attach(target)
|
22
|
-
fail "Cannot add invalid target: #{ target }" unless target.is_a?(Hash)
|
23
|
-
@targets.merge!(target)
|
24
|
-
LoggerDelegator.delegate
|
25
|
-
end
|
26
|
-
|
27
|
-
# Creates delegator methods for a specific list of Logger
|
28
|
-
# functions.
|
29
|
-
# @return [void]
|
30
|
-
def self.delegate
|
31
|
-
%w(log debug info warn error section success).each do |m|
|
32
|
-
define_method(m) do |*args|
|
33
|
-
@targets.each_value { |v| v.send(m, *args) }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# Detaches a delegation target.
|
39
|
-
# @param [<String, Symbol>] target_name The target to remove
|
40
|
-
# @return [void]
|
41
|
-
def detach(target_name)
|
42
|
-
unless @targets.key?(target_name)
|
43
|
-
fail "Cannot delete invalid target: #{ target_name }"
|
44
|
-
end
|
45
|
-
@targets.delete(target_name)
|
46
|
-
LoggerDelegator.delegate
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_actions/open_url_action')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestOpenUrlAction < Test::Unit::TestCase
|
7
|
-
def test_run
|
8
|
-
a = CLIUtils::OpenUrlAction.new
|
9
|
-
a.parameters = { url: 'http://www.google.com' }
|
10
|
-
assert_output() { a.run }
|
11
|
-
end
|
12
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/capitalize_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestCapitalizeBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::CapitalizeBehavior.new
|
9
|
-
assert_equal(v.evaluate('bachya'), 'Bachya')
|
10
|
-
end
|
11
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/expand_filepath_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestExpandFilepathBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::ExpandFilepathBehavior.new
|
9
|
-
assert_equal(v.evaluate('~/test'), "#{ ENV['HOME'] }/test")
|
10
|
-
end
|
11
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/lowercase_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestLowercaseBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::LowercaseBehavior.new
|
9
|
-
assert_equal(v.evaluate('BaChYa'), 'bachya')
|
10
|
-
end
|
11
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/prefix_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestPrefixBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::PrefixBehavior.new
|
9
|
-
v.parameters = { prefix: 'test: ' }
|
10
|
-
assert_equal(v.evaluate('bachya'), 'test: bachya')
|
11
|
-
end
|
12
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/suffix_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestSuffixBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::SuffixBehavior.new
|
9
|
-
v.parameters = { suffix: ' - signing off!' }
|
10
|
-
assert_equal(v.evaluate('bachya'), 'bachya - signing off!')
|
11
|
-
end
|
12
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/titlecase_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestTitlecaseBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::TitlecaseBehavior.new
|
9
|
-
assert_equal(v.evaluate('my sentence is here'), 'My Sentence Is Here')
|
10
|
-
end
|
11
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', '..', 'lib/cliutils/prefs/pref_behaviors/uppercase_behavior')
|
4
|
-
|
5
|
-
# Tests for the Configurator class
|
6
|
-
class TestUppercaseBehavior < Test::Unit::TestCase
|
7
|
-
def test_evaluation
|
8
|
-
v = CLIUtils::UppercaseBehavior.new
|
9
|
-
assert_equal(v.evaluate('bachya'), 'BACHYA')
|
10
|
-
end
|
11
|
-
end
|
data/test/configuration_test.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/configurator')
|
4
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/configuration')
|
5
|
-
|
6
|
-
# Tests for the Configurator class
|
7
|
-
class TestConfiguration < Test::Unit::TestCase
|
8
|
-
include CLIUtils::Configuration
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@config_path = '/tmp/test.config'
|
12
|
-
@expected_config_data = {
|
13
|
-
my_app: {
|
14
|
-
config_location: '/Users/bob/.my-app-config',
|
15
|
-
log_level: 'WARN',
|
16
|
-
version: '1.0.0'
|
17
|
-
},
|
18
|
-
user_data: {
|
19
|
-
username: 'bob',
|
20
|
-
age: 45
|
21
|
-
}
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def teardown
|
26
|
-
FileUtils.rm(@config_path) if File.file?(@config_path)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_before_loading
|
30
|
-
assert_raise RuntimeError do
|
31
|
-
configuration
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_empty_configuration
|
36
|
-
load_configuration(@config_path)
|
37
|
-
assert_equal(configuration.class, CLIUtils::Configurator)
|
38
|
-
assert_equal(configuration.config_path, @config_path)
|
39
|
-
assert_equal(configuration.data, {})
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_existing_configuration
|
43
|
-
FileUtils.cp(File.join(File.dirname(__FILE__), '..', 'test/test_files/configuration.yaml'), @config_path)
|
44
|
-
load_configuration(@config_path)
|
45
|
-
assert_equal(configuration.class, CLIUtils::Configurator)
|
46
|
-
assert_equal(configuration.config_path, @config_path)
|
47
|
-
assert_equal(configuration.data, @expected_config_data)
|
48
|
-
end
|
49
|
-
end
|
data/test/configurator_test.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'test_helper'
|
3
|
-
|
4
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/configurator')
|
5
|
-
|
6
|
-
# Tests for the Configurator class
|
7
|
-
class TestConfigurator < Test::Unit::TestCase
|
8
|
-
def setup
|
9
|
-
@config_path = '/tmp/test.config'
|
10
|
-
@config = CLIUtils::Configurator.new(@config_path)
|
11
|
-
end
|
12
|
-
|
13
|
-
def teardown
|
14
|
-
FileUtils.rm(@config_path) if File.file?(@config_path)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_add_section
|
18
|
-
@config.add_section(:test)
|
19
|
-
assert_equal(@config.data, test: {})
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_delete_section
|
23
|
-
@config.add_section(:test)
|
24
|
-
@config.add_section(:test2)
|
25
|
-
@config.delete_section(:test)
|
26
|
-
assert_equal(@config.data, test2: {})
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_accessing
|
30
|
-
@config.add_section(:test)
|
31
|
-
@config.data[:test].merge!(name: 'Bob')
|
32
|
-
assert_equal(@config.test, name: 'Bob')
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_reset
|
36
|
-
@config.add_section(:test)
|
37
|
-
@config.data[:test].merge!(name: 'Bob')
|
38
|
-
@config.reset
|
39
|
-
assert_equal(@config.data, {})
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_save
|
43
|
-
@config.add_section(:section1)
|
44
|
-
@config.section1.merge!(a: 'test', b: 'test')
|
45
|
-
@config.save
|
46
|
-
|
47
|
-
File.open(@config_path, 'r') do |f|
|
48
|
-
assert_output("---\nsection1:\n a: test\n b: test\n") { puts f.read }
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_compare_version
|
53
|
-
@config.add_section(:app_data)
|
54
|
-
@config.app_data.merge!({ VERSION: '1.0.0' })
|
55
|
-
|
56
|
-
@config.current_version = @config.app_data['VERSION']
|
57
|
-
@config.last_version = '1.0.8'
|
58
|
-
|
59
|
-
@config.compare_version do |c, l|
|
60
|
-
assert_output('true') { print 'true' }
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/ext/hash_extensions')
|
4
|
-
|
5
|
-
# Tests for the Hash extension methods
|
6
|
-
class TestHashExtensions < Test::Unit::TestCase
|
7
|
-
def test_deep_merge!
|
8
|
-
h1 = { key: 'value', key2: %w(value1, value2) }
|
9
|
-
h2 = { key: 'another_value' }
|
10
|
-
exp_result = { key: 'another_value', key2: %w(value1, value2) }
|
11
|
-
actual_result = h1.deep_merge!(h2)
|
12
|
-
|
13
|
-
assert_equal(exp_result, actual_result)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_deep_stringify_keys
|
17
|
-
h = { key: { subkey1: 'value1', subkey2: { subsubkey1: 'value' } } }
|
18
|
-
exp_result = { 'key' => { 'subkey1' => 'value1', 'subkey2' => { 'subsubkey1' => 'value' } } }
|
19
|
-
actual_result = h.deep_stringify_keys
|
20
|
-
|
21
|
-
assert_not_equal(h, actual_result)
|
22
|
-
assert_equal(exp_result, actual_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_deep_stringify_keys!
|
26
|
-
h = {key: {subkey1: 'value1', subkey2: {subsubkey1: 'value'}}}
|
27
|
-
exp_result = { 'key' => { 'subkey1' => 'value1', 'subkey2' => { 'subsubkey1' => 'value' } } }
|
28
|
-
actual_result = h.deep_stringify_keys!
|
29
|
-
|
30
|
-
assert_equal(h, actual_result)
|
31
|
-
assert_equal(exp_result, actual_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_deep_symbolize_keys
|
35
|
-
h = { 'key' => { 'subkey1' => 'value1', 'subkey2' => { 'subsubkey1' => 'value'} } }
|
36
|
-
exp_result = { key: { subkey1: 'value1', subkey2: { subsubkey1: 'value'} } }
|
37
|
-
actual_result = h.deep_symbolize_keys
|
38
|
-
|
39
|
-
assert_not_equal(h, actual_result)
|
40
|
-
assert_equal(exp_result, actual_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_deep_symbolize_keys!
|
44
|
-
h = { 'key' => { 'subkey1' => 'value1', 'subkey2' => { 'subsubkey1' => 'value'} } }
|
45
|
-
exp_result = { key: { subkey1: 'value1', subkey2: { subsubkey1: 'value'} } }
|
46
|
-
actual_result = h.deep_symbolize_keys!
|
47
|
-
|
48
|
-
assert_equal(h, actual_result)
|
49
|
-
assert_equal(exp_result, actual_result)
|
50
|
-
end
|
51
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/ext/logger_extensions')
|
4
|
-
|
5
|
-
# Tests for the Logger extension methods
|
6
|
-
class TestLoggerExtensions < Test::Unit::TestCase
|
7
|
-
def test_custom_level
|
8
|
-
l = Logger.new(STDOUT)
|
9
|
-
l.formatter = proc do |severity, datetime, progname, msg|
|
10
|
-
puts "#{ severity }: #{ msg }"
|
11
|
-
end
|
12
|
-
|
13
|
-
assert_output("PROMPT: test\n") { l.prompt('test') }
|
14
|
-
assert_output("SECTION: test\n") { l.section('test') }
|
15
|
-
assert_output("SUCCESS: test\n") { l.success('test') }
|
16
|
-
end
|
17
|
-
end
|
data/test/messaging_test.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
require 'test_helper'
|
3
|
-
|
4
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/ext/string_extensions')
|
5
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/pretty_io')
|
6
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/logger_delegator')
|
7
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/messaging')
|
8
|
-
|
9
|
-
# Tests for the Hash extension methods
|
10
|
-
class TestMessaging < Test::Unit::TestCase
|
11
|
-
include CLIUtils::Messaging
|
12
|
-
|
13
|
-
def setup
|
14
|
-
@file1path = '/tmp/file1.txt'
|
15
|
-
end
|
16
|
-
|
17
|
-
def teardown
|
18
|
-
FileUtils.rm(@file1path) if File.file?(@file1path)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_stdout_output
|
22
|
-
assert_output('# This is error'.red + "\n") { messenger.send(:error, 'This is error') }
|
23
|
-
assert_output('# This is info'.blue + "\n") { messenger.send(:info, 'This is info') }
|
24
|
-
assert_output('---> This is section'.purple + "\n") { messenger.send(:section, 'This is section') }
|
25
|
-
assert_output('# This is success'.green + "\n") { messenger.send(:success, 'This is success') }
|
26
|
-
assert_output('# This is warn'.yellow + "\n") { messenger.send(:warn, 'This is warn') }
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_wrapping
|
30
|
-
CLIUtils::PrettyIO.wrap_char_limit = 35
|
31
|
-
|
32
|
-
long_str = 'This is a really long string that should wrap itself at some point, okay?'
|
33
|
-
expected_str = long_str.gsub(/\n/, ' ').gsub(/(.{1,#{CLIUtils::PrettyIO.wrap_char_limit - 2}})(\s+|$)/, "# \\1\n").strip
|
34
|
-
assert_output(expected_str.blue + "\n") { messenger.send(:info, long_str) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_attach_detach
|
38
|
-
file_logger = Logger.new(@file1path)
|
39
|
-
file_logger.formatter = proc do |severity, datetime, progname, msg|
|
40
|
-
"#{ severity }: #{ msg }\n"
|
41
|
-
end
|
42
|
-
|
43
|
-
messenger.attach(FILE: file_logger)
|
44
|
-
messenger.send(:info, 'Info test')
|
45
|
-
messenger.send(:error, 'Error test')
|
46
|
-
messenger.detach(:FILE)
|
47
|
-
messenger.send(:warn, 'Warn test')
|
48
|
-
|
49
|
-
File.open(@file1path, 'r') do |f|
|
50
|
-
assert_output("INFO: Info test\nERROR: Error test\n") { puts f.read.lines.to_a[1..-1].join }
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/ext/string_extensions')
|
4
|
-
|
5
|
-
# Tests for the String extension methods
|
6
|
-
class TestStringExtensions < Test::Unit::TestCase
|
7
|
-
def test_custom_colors
|
8
|
-
assert_output("\e[34mtest\e[0m") { print 'test'.blue }
|
9
|
-
assert_output("\e[36mtest\e[0m") { print 'test'.cyan }
|
10
|
-
assert_output("\e[32mtest\e[0m") { print 'test'.green }
|
11
|
-
assert_output("\e[35mtest\e[0m") { print 'test'.purple }
|
12
|
-
assert_output("\e[31mtest\e[0m") { print 'test'.red }
|
13
|
-
assert_output("\e[37mtest\e[0m") { print 'test'.white }
|
14
|
-
assert_output("\e[33mtest\e[0m") { print 'test'.yellow }
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_colorize
|
18
|
-
assert_output("\e[35;42mtest\e[0m") { print 'test'.colorize('35;42') }
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_camelize
|
22
|
-
assert_output('TestString') { print 'test_string'.camelize }
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_snakify
|
26
|
-
assert_output('test_string') { print 'TestString'.snakify }
|
27
|
-
end
|
28
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
prompts:
|
2
|
-
- prompt_text: This is a test prompt
|
3
|
-
config_key: test_prompt
|
4
|
-
config_section: app_data
|
5
|
-
# pre:
|
6
|
-
# message: I will now test a custom action via filepath
|
7
|
-
# action:
|
8
|
-
# name: test
|
9
|
-
# pre:
|
10
|
-
# message: 'I will now open espn.com in your default browser.'
|
11
|
-
# action:
|
12
|
-
# name: test
|
13
|
-
# parameters:
|
14
|
-
# url: http://www.espn.com
|
15
|
-
# post:
|
16
|
-
# message: 'Thanks for inputting!'
|
17
|
-
validators:
|
18
|
-
- alphabetic
|
19
|
-
# - alphanumeric
|
20
|
-
# - date
|
21
|
-
# - datetime
|
22
|
-
# - filepath_exists
|
23
|
-
# - non_nil
|
24
|
-
# - number
|
25
|
-
# - time
|
26
|
-
# - url
|
27
|
-
behaviors:
|
28
|
-
- name: capitalize
|
29
|
-
# - name: expand_filepath
|
30
|
-
# - name: lowercase
|
31
|
-
# - name: prefix
|
32
|
-
# parameters:
|
33
|
-
# prefix: 'back'
|
34
|
-
# - name: suffix
|
35
|
-
# parameters:
|
36
|
-
# suffix: 'test'
|
37
|
-
# - name: titlecase
|
38
|
-
# - name: uppercase
|