cliutils 2.1.4 → 2.2.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +3 -2
  4. data/Gemfile +7 -0
  5. data/HISTORY.md +7 -0
  6. data/README.md +3 -1
  7. data/Rakefile +8 -1
  8. data/cliutils.gemspec +1 -0
  9. data/lib/cliutils/configuration.rb +1 -1
  10. data/lib/cliutils/constants.rb +1 -1
  11. data/lib/cliutils/ext/hash_extensions.rb +16 -12
  12. data/lib/cliutils/messaging.rb +2 -116
  13. data/lib/cliutils/messenger.rb +109 -0
  14. data/lib/cliutils/prefs/pref.rb +10 -10
  15. data/lib/cliutils/prefs/pref_actions/open_url_action.rb +1 -1
  16. data/lib/cliutils/prefs/pref_validators/filepath_exists_validator.rb +2 -0
  17. data/lib/cliutils/prefs/pref_validators/url_validator.rb +1 -1
  18. data/lib/cliutils/prefs.rb +1 -1
  19. data/lib/cliutils/pretty_io.rb +0 -10
  20. data/lib/cliutils.rb +1 -1
  21. data/spec/action/open_url_action_spec.rb +20 -0
  22. data/spec/action/pref_action_spec.rb +11 -0
  23. data/spec/behavior/capitalize_behavior_spec.rb +11 -0
  24. data/spec/behavior/expand_filepath_behavior_spec.rb +11 -0
  25. data/spec/behavior/lowercase_behavior_spec.rb +11 -0
  26. data/spec/behavior/pref_behavior_spec.rb +11 -0
  27. data/spec/behavior/prefix_behavior_spec.rb +12 -0
  28. data/spec/behavior/suffix_behavior_spec.rb +12 -0
  29. data/spec/behavior/titlecase_behavior_spec.rb +10 -0
  30. data/spec/behavior/uppercase_behavior_spec.rb +11 -0
  31. data/spec/configuration_spec.rb +37 -0
  32. data/spec/configurator_spec.rb +104 -0
  33. data/spec/ext/hash_extensions_spec.rb +54 -0
  34. data/spec/ext/logger_extensions_spec.rb +20 -0
  35. data/spec/ext/string_extensions_spec.rb +26 -0
  36. data/spec/messaging_spec.rb +91 -0
  37. data/spec/pref_spec.rb +144 -0
  38. data/spec/prefs_spec.rb +150 -0
  39. data/spec/spec_helper.rb +16 -0
  40. data/spec/validator/alphabetic_validator_spec.rb +20 -0
  41. data/spec/validator/alphanumeric_validator_spec.rb +20 -0
  42. data/spec/validator/date_validator_spec.rb +20 -0
  43. data/spec/validator/datetime_validator_spec.rb +20 -0
  44. data/spec/validator/filepath_exists_validator_spec.rb +20 -0
  45. data/spec/validator/non_nil_validator_spec.rb +24 -0
  46. data/spec/validator/number_validator_spec.rb +20 -0
  47. data/spec/validator/pref_validator_spec.rb +11 -0
  48. data/spec/validator/time_validator_spec.rb +20 -0
  49. data/spec/validator/url_validator_spec.rb +20 -0
  50. data/{test/test_files → support}/configuration.yaml +1 -1
  51. data/support/prefstest.yaml +27 -0
  52. data/{test/test_files → support}/test_action.rb +0 -0
  53. data/support/test_action_empty.rb +7 -0
  54. data/{test/test_files → support}/test_behavior.rb +2 -2
  55. data/support/test_behavior_empty.rb +6 -0
  56. data/{test/test_files → support}/test_validator.rb +0 -2
  57. data/support/test_validator_empty.rb +7 -0
  58. data/test/pref_test.rb +0 -1
  59. data/test/prefs_test.rb +64 -1
  60. data/test/test_helper.rb +2 -2
  61. metadata +91 -67
  62. data/lib/cliutils/logger_delegator.rb +0 -49
  63. data/test/action_tests/open_url_action_test.rb +0 -12
  64. data/test/behavior_tests/capitalize_behavior_test.rb +0 -11
  65. data/test/behavior_tests/expand_filepath_behavior_test.rb +0 -11
  66. data/test/behavior_tests/lowercase_behavior_test.rb +0 -11
  67. data/test/behavior_tests/prefix_behavior_test.rb +0 -12
  68. data/test/behavior_tests/suffix_behavior_test.rb +0 -12
  69. data/test/behavior_tests/titlecase_behavior_test.rb +0 -11
  70. data/test/behavior_tests/uppercase_behavior_test.rb +0 -11
  71. data/test/configuration_test.rb +0 -49
  72. data/test/configurator_test.rb +0 -63
  73. data/test/hash_extensions_test.rb +0 -51
  74. data/test/logger_extensions_test.rb +0 -17
  75. data/test/messaging_test.rb +0 -53
  76. data/test/string_extesions_test.rb +0 -28
  77. data/test/test_files/prefstest.yaml +0 -38
  78. data/test/validator_tests/alphabetic_validator_test.rb +0 -22
  79. data/test/validator_tests/alphanumeric_validator_test.rb +0 -22
  80. data/test/validator_tests/date_validator_test.rb +0 -22
  81. data/test/validator_tests/datetime_validator_test.rb +0 -22
  82. data/test/validator_tests/filepath_exists_validator_test.rb +0 -22
  83. data/test/validator_tests/non_nil_validator_test.rb +0 -30
  84. data/test/validator_tests/number_validator_test.rb +0 -22
  85. data/test/validator_tests/time_validator_test.rb +0 -22
  86. data/test/validator_tests/url_validator_test.rb +0 -22
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/date_validator'
5
+
6
+ describe CLIUtils::DateValidator do
7
+ it 'confirms that its input is a date' do
8
+ v = CLIUtils::DateValidator.new
9
+ v.validate('2014-02-01')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Response is not a date: 2014-02-01')
12
+ end
13
+
14
+ it 'confirms that its input is not a date' do
15
+ v = CLIUtils::DateValidator.new
16
+ v.validate('!@&^')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Response is not a date: !@&^')
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/datetime_validator'
5
+
6
+ describe CLIUtils::DatetimeValidator do
7
+ it 'confirms that its input is a datetime' do
8
+ v = CLIUtils::DatetimeValidator.new
9
+ v.validate('2014-02-01 12:34 PM')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Response is not a datetime: 2014-02-01 12:34 PM')
12
+ end
13
+
14
+ it 'confirms that its input is not a datetime' do
15
+ v = CLIUtils::DatetimeValidator.new
16
+ v.validate('!@&^')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Response is not a datetime: !@&^')
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/filepath_exists_validator'
5
+
6
+ describe CLIUtils::FilepathExistsValidator do
7
+ it 'confirms that its input is an existing filepath' do
8
+ v = CLIUtils::FilepathExistsValidator.new
9
+ v.validate('/tmp')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Path does not exist locally: /tmp')
12
+ end
13
+
14
+ it 'confirms that its input is not an existing filepath' do
15
+ v = CLIUtils::FilepathExistsValidator.new
16
+ v.validate('!@&^')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Path does not exist locally: !@&^')
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/non_nil_validator'
5
+
6
+ describe CLIUtils::NonNilValidator do
7
+ it 'confirms that its input is non-nil' do
8
+ v = CLIUtils::NonNilValidator.new
9
+ v.validate('bachya')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Nil text not allowed')
12
+ end
13
+
14
+ it 'confirms that its input is not non-nil' do
15
+ v = CLIUtils::NonNilValidator.new
16
+ v.validate('')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Nil text not allowed')
19
+
20
+ v.validate(nil)
21
+ expect(v.is_valid).to_not be_true
22
+ expect(v.message).to eq('Nil text not allowed')
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/number_validator'
5
+
6
+ describe CLIUtils::NumberValidator do
7
+ it 'confirms that its input is a number' do
8
+ v = CLIUtils::NumberValidator.new
9
+ v.validate('12345.678')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Response is not a number: 12345.678')
12
+ end
13
+
14
+ it 'confirms that its input is not a number' do
15
+ v = CLIUtils::NumberValidator.new
16
+ v.validate('bachya')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Response is not a number: bachya')
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require File.join(File.dirname(__FILE__), '..', '..', 'support/test_validator_empty')
5
+
6
+ describe CLIUtils::TestValidatorEmpty do
7
+ it 'raises an exception if `validate` is not implemented' do
8
+ m = '`validate` method not implemented on caller: CLIUtils::TestValidatorEmpty'
9
+ expect { CLIUtils::TestValidatorEmpty.new.validate('') }.to raise_error(RuntimeError, m)
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/time_validator'
5
+
6
+ describe CLIUtils::TimeValidator do
7
+ it 'confirms that its input is a time' do
8
+ v = CLIUtils::TimeValidator.new
9
+ v.validate('12:43 AM')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Response is not a time: 12:43 AM')
12
+ end
13
+
14
+ it 'confirms that its input is not a time' do
15
+ v = CLIUtils::TimeValidator.new
16
+ v.validate('!@&^')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Response is not a time: !@&^')
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../spec_helper'
2
+ require 'cliutils/messaging'
3
+ require 'cliutils/prefs/pref_validators/pref_validator'
4
+ require 'cliutils/prefs/pref_validators/url_validator'
5
+
6
+ describe CLIUtils::UrlValidator do
7
+ it 'confirms that its input is a URL' do
8
+ v = CLIUtils::UrlValidator.new
9
+ v.validate('http://www.google.com')
10
+ expect(v.is_valid).to be_true
11
+ expect(v.message).to eq('Response is not a URL: http://www.google.com')
12
+ end
13
+
14
+ it 'confirms that its input is not a URL' do
15
+ v = CLIUtils::UrlValidator.new
16
+ v.validate('!@&^')
17
+ expect(v.is_valid).to_not be_true
18
+ expect(v.message).to eq('Response is not a URL: !@&^')
19
+ end
20
+ end
@@ -5,4 +5,4 @@ my_app:
5
5
  version: 1.0.0
6
6
  user_data:
7
7
  username: bob
8
- age: 45
8
+ age: 45
@@ -0,0 +1,27 @@
1
+ prompts:
2
+ - prompt_text: Batman or Superman?
3
+ default: Batman
4
+ config_key: superhero
5
+ config_section: personal_info
6
+ - prompt_text: Do you feel smart for preferring Batman?
7
+ default: Y
8
+ config_key: batman_answer
9
+ config_section: personal_info
10
+ prereqs:
11
+ - config_key: superhero
12
+ config_value: Batman
13
+ - prompt_text: Why do you prefer Superman?!
14
+ default: No clue
15
+ config_key: superman_answer
16
+ config_section: personal_info
17
+ prereqs:
18
+ - config_key: superhero
19
+ config_value: Superman
20
+ - prompt_text: Why don't you have a clue?
21
+ config_key: no_clue
22
+ config_section: personal_info
23
+ prereqs:
24
+ - config_key: superhero
25
+ config_value: Superman
26
+ - config_key: superman_answer
27
+ config_value: No clue
File without changes
@@ -0,0 +1,7 @@
1
+ module CLIUtils
2
+ # Pref Action to open a URL in the default
3
+ # browser.
4
+ class TestActionEmpty < PrefAction
5
+
6
+ end
7
+ end
@@ -5,7 +5,7 @@ module CLIUtils
5
5
  # @param [Object] text The "text" to evaluate
6
6
  # @return [String]
7
7
  def evaluate(text)
8
- "test_behavior: #{ text }"
8
+ "test behavior: #{ text }"
9
9
  end
10
10
  end
11
- end
11
+ end
@@ -0,0 +1,6 @@
1
+ module CLIUtils
2
+ # A Behavior to prefix a Pref answer with a string
3
+ class TestBehaviorEmpty < PrefBehavior
4
+
5
+ end
6
+ end
@@ -1,5 +1,3 @@
1
- require 'uri'
2
-
3
1
  module CLIUtils
4
2
  # A Validator to verify whether a Pref answer
5
3
  # is a valid URL.
@@ -0,0 +1,7 @@
1
+ module CLIUtils
2
+ # A Validator to verify whether a Pref answer
3
+ # is a valid URL.
4
+ class TestValidatorEmpty < PrefValidator
5
+
6
+ end
7
+ end
data/test/pref_test.rb CHANGED
@@ -7,7 +7,6 @@ require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/prefs/pref_actions
7
7
  require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/prefs/pref_behaviors/pref_behavior')
8
8
  require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/prefs/pref_validators/pref_validator')
9
9
 
10
- # Tests for the Prefs class
11
10
  class TestPref < Test::Unit::TestCase
12
11
  def setup
13
12
  @prefs_hash = {
data/test/prefs_test.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  require 'test_helper'
2
+ require 'tempfile'
2
3
  require 'yaml'
3
4
 
4
5
  require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/ext/hash_extensions')
5
6
  require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/prefs')
6
7
  require File.join(File.dirname(__FILE__), '..', 'lib/cliutils/prefs/pref')
7
8
 
8
- # Tests for the Prefs class
9
9
  class TestPrefs < Test::Unit::TestCase
10
10
  def setup
11
11
  @prefs_arr = [
@@ -56,6 +56,11 @@ class TestPrefs < Test::Unit::TestCase
56
56
  assert_equal(prefs[:prompts].map { |p| CLIUtils::Pref.new(p) }, p.prompts)
57
57
  end
58
58
 
59
+ def test_bad_file_creation
60
+ exception = assert_raise(RuntimeError) { p = CLIUtils::Prefs.new('asd') }
61
+ assert_equal('Invalid configuration file: asd', exception.message)
62
+ end
63
+
59
64
  def test_array_creation
60
65
  p = CLIUtils::Prefs.new(@prefs_arr)
61
66
  prefs = @prefs_hash.deep_symbolize_keys
@@ -68,6 +73,11 @@ class TestPrefs < Test::Unit::TestCase
68
73
  assert_equal(prefs[:prompts].map { |p| CLIUtils::Pref.new(p) }, p.prompts)
69
74
  end
70
75
 
76
+ def test_invalid_type_creation
77
+ exception = assert_raise(RuntimeError) { p = CLIUtils::Prefs.new(123) }
78
+ assert_equal('Invalid configuration data', exception.message)
79
+ end
80
+
71
81
  def test_register
72
82
  CLIUtils::Prefs.register_action(File.join(File.dirname(__FILE__), 'test_files/test_action.rb'))
73
83
  assert_equal(CLIUtils::Prefs.registered_actions.key?(:Test), true)
@@ -85,6 +95,19 @@ class TestPrefs < Test::Unit::TestCase
85
95
  assert_equal(CLIUtils::Prefs.registered_validators[:Test][:path], File.join(File.dirname(__FILE__), 'test_files/test_validator.rb'))
86
96
  end
87
97
 
98
+ def test_bad_registration
99
+ m = 'Registration failed because of unknown filepath: bachya.rb'
100
+
101
+ exception = assert_raise(RuntimeError) { CLIUtils::Prefs.register_action('bachya.rb') }
102
+ assert_equal(m, exception.message)
103
+
104
+ exception = assert_raise(RuntimeError) { CLIUtils::Prefs.register_behavior('bachya.rb') }
105
+ assert_equal(m, exception.message)
106
+
107
+ exception = assert_raise(RuntimeError) { CLIUtils::Prefs.register_validator('bachya.rb') }
108
+ assert_equal(m, exception.message)
109
+ end
110
+
88
111
  def test_deregister
89
112
  CLIUtils::Prefs.register_action(File.join(File.dirname(__FILE__), 'test_files/test_action.rb'))
90
113
  CLIUtils::Prefs.deregister_action(:Test)
@@ -98,4 +121,44 @@ class TestPrefs < Test::Unit::TestCase
98
121
  CLIUtils::Prefs.deregister_validator(:Test)
99
122
  assert_equal(CLIUtils::Prefs.registered_validators.key?(:Test), false)
100
123
  end
124
+
125
+ def test_ask
126
+ p = CLIUtils::Prefs.new(@prefs_filepath)
127
+ stdin = Tempfile.new("test_readline_stdin")
128
+ stdout = Tempfile.new("test_readline_stdout")
129
+ begin
130
+ stdin.write("\n")
131
+ stdin.close
132
+ stdout.close
133
+ line = replace_stdio(stdin.path, stdout.path) {
134
+ p.ask
135
+ }
136
+ ensure
137
+ stdin.close(true)
138
+ stdout.close(true)
139
+ end
140
+ end
141
+
142
+ private
143
+
144
+ def replace_stdio(stdin_path, stdout_path)
145
+ open(stdin_path, "r"){|stdin|
146
+ open(stdout_path, "w"){|stdout|
147
+ orig_stdin = STDIN.dup
148
+ orig_stdout = STDOUT.dup
149
+ STDIN.reopen(stdin)
150
+ STDOUT.reopen(stdout)
151
+ begin
152
+ Readline.input = STDIN
153
+ Readline.output = STDOUT
154
+ yield
155
+ ensure
156
+ STDIN.reopen(orig_stdin)
157
+ STDOUT.reopen(orig_stdout)
158
+ orig_stdin.close
159
+ orig_stdout.close
160
+ end
161
+ }
162
+ }
163
+ end
101
164
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
+ require 'simplecov'
1
2
  require 'test/unit'
2
3
 
3
4
  class Test::Unit::TestCase
4
- # require 'coveralls'
5
- # Coveralls.wear!
5
+
6
6
  end
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cliutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Bach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-27 00:00:00.000000000 Z
11
+ date: 2014-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 2.14.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.14.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: yard
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -74,8 +88,8 @@ executables: []
74
88
  extensions: []
75
89
  extra_rdoc_files: []
76
90
  files:
77
- - .gitignore
78
- - .travis.yml
91
+ - ".gitignore"
92
+ - ".travis.yml"
79
93
  - Gemfile
80
94
  - HISTORY.md
81
95
  - LICENSE.txt
@@ -89,8 +103,8 @@ files:
89
103
  - lib/cliutils/ext/hash_extensions.rb
90
104
  - lib/cliutils/ext/logger_extensions.rb
91
105
  - lib/cliutils/ext/string_extensions.rb
92
- - lib/cliutils/logger_delegator.rb
93
106
  - lib/cliutils/messaging.rb
107
+ - lib/cliutils/messenger.rb
94
108
  - lib/cliutils/prefs.rb
95
109
  - lib/cliutils/prefs/pref.rb
96
110
  - lib/cliutils/prefs/pref_actions/open_url_action.rb
@@ -130,37 +144,46 @@ files:
130
144
  - res/readme-images/prettyio-red-text.png
131
145
  - res/readme-images/prompting.png
132
146
  - res/readme-images/wrapping.png
133
- - test/action_tests/open_url_action_test.rb
134
- - test/behavior_tests/capitalize_behavior_test.rb
135
- - test/behavior_tests/expand_filepath_behavior_test.rb
136
- - test/behavior_tests/lowercase_behavior_test.rb
137
- - test/behavior_tests/prefix_behavior_test.rb
138
- - test/behavior_tests/suffix_behavior_test.rb
139
- - test/behavior_tests/titlecase_behavior_test.rb
140
- - test/behavior_tests/uppercase_behavior_test.rb
141
- - test/configuration_test.rb
142
- - test/configurator_test.rb
143
- - test/hash_extensions_test.rb
144
- - test/logger_extensions_test.rb
145
- - test/messaging_test.rb
147
+ - spec/action/open_url_action_spec.rb
148
+ - spec/action/pref_action_spec.rb
149
+ - spec/behavior/capitalize_behavior_spec.rb
150
+ - spec/behavior/expand_filepath_behavior_spec.rb
151
+ - spec/behavior/lowercase_behavior_spec.rb
152
+ - spec/behavior/pref_behavior_spec.rb
153
+ - spec/behavior/prefix_behavior_spec.rb
154
+ - spec/behavior/suffix_behavior_spec.rb
155
+ - spec/behavior/titlecase_behavior_spec.rb
156
+ - spec/behavior/uppercase_behavior_spec.rb
157
+ - spec/configuration_spec.rb
158
+ - spec/configurator_spec.rb
159
+ - spec/ext/hash_extensions_spec.rb
160
+ - spec/ext/logger_extensions_spec.rb
161
+ - spec/ext/string_extensions_spec.rb
162
+ - spec/messaging_spec.rb
163
+ - spec/pref_spec.rb
164
+ - spec/prefs_spec.rb
165
+ - spec/spec_helper.rb
166
+ - spec/validator/alphabetic_validator_spec.rb
167
+ - spec/validator/alphanumeric_validator_spec.rb
168
+ - spec/validator/date_validator_spec.rb
169
+ - spec/validator/datetime_validator_spec.rb
170
+ - spec/validator/filepath_exists_validator_spec.rb
171
+ - spec/validator/non_nil_validator_spec.rb
172
+ - spec/validator/number_validator_spec.rb
173
+ - spec/validator/pref_validator_spec.rb
174
+ - spec/validator/time_validator_spec.rb
175
+ - spec/validator/url_validator_spec.rb
176
+ - support/configuration.yaml
177
+ - support/prefstest.yaml
178
+ - support/test_action.rb
179
+ - support/test_action_empty.rb
180
+ - support/test_behavior.rb
181
+ - support/test_behavior_empty.rb
182
+ - support/test_validator.rb
183
+ - support/test_validator_empty.rb
146
184
  - test/pref_test.rb
147
185
  - test/prefs_test.rb
148
- - test/string_extesions_test.rb
149
- - test/test_files/configuration.yaml
150
- - test/test_files/prefstest.yaml
151
- - test/test_files/test_action.rb
152
- - test/test_files/test_behavior.rb
153
- - test/test_files/test_validator.rb
154
186
  - test/test_helper.rb
155
- - test/validator_tests/alphabetic_validator_test.rb
156
- - test/validator_tests/alphanumeric_validator_test.rb
157
- - test/validator_tests/date_validator_test.rb
158
- - test/validator_tests/datetime_validator_test.rb
159
- - test/validator_tests/filepath_exists_validator_test.rb
160
- - test/validator_tests/non_nil_validator_test.rb
161
- - test/validator_tests/number_validator_test.rb
162
- - test/validator_tests/time_validator_test.rb
163
- - test/validator_tests/url_validator_test.rb
164
187
  homepage: https://github.com/bachya/cliutils
165
188
  licenses:
166
189
  - MIT
@@ -171,12 +194,12 @@ require_paths:
171
194
  - lib
172
195
  required_ruby_version: !ruby/object:Gem::Requirement
173
196
  requirements:
174
- - - '>='
197
+ - - ">="
175
198
  - !ruby/object:Gem::Version
176
199
  version: '0'
177
200
  required_rubygems_version: !ruby/object:Gem::Requirement
178
201
  requirements:
179
- - - '>='
202
+ - - ">="
180
203
  - !ruby/object:Gem::Version
181
204
  version: '0'
182
205
  requirements: []
@@ -186,35 +209,36 @@ signing_key:
186
209
  specification_version: 4
187
210
  summary: Sugary goodness for Ruby CLI apps.
188
211
  test_files:
189
- - test/action_tests/open_url_action_test.rb
190
- - test/behavior_tests/capitalize_behavior_test.rb
191
- - test/behavior_tests/expand_filepath_behavior_test.rb
192
- - test/behavior_tests/lowercase_behavior_test.rb
193
- - test/behavior_tests/prefix_behavior_test.rb
194
- - test/behavior_tests/suffix_behavior_test.rb
195
- - test/behavior_tests/titlecase_behavior_test.rb
196
- - test/behavior_tests/uppercase_behavior_test.rb
197
- - test/configuration_test.rb
198
- - test/configurator_test.rb
199
- - test/hash_extensions_test.rb
200
- - test/logger_extensions_test.rb
201
- - test/messaging_test.rb
212
+ - spec/action/open_url_action_spec.rb
213
+ - spec/action/pref_action_spec.rb
214
+ - spec/behavior/capitalize_behavior_spec.rb
215
+ - spec/behavior/expand_filepath_behavior_spec.rb
216
+ - spec/behavior/lowercase_behavior_spec.rb
217
+ - spec/behavior/pref_behavior_spec.rb
218
+ - spec/behavior/prefix_behavior_spec.rb
219
+ - spec/behavior/suffix_behavior_spec.rb
220
+ - spec/behavior/titlecase_behavior_spec.rb
221
+ - spec/behavior/uppercase_behavior_spec.rb
222
+ - spec/configuration_spec.rb
223
+ - spec/configurator_spec.rb
224
+ - spec/ext/hash_extensions_spec.rb
225
+ - spec/ext/logger_extensions_spec.rb
226
+ - spec/ext/string_extensions_spec.rb
227
+ - spec/messaging_spec.rb
228
+ - spec/pref_spec.rb
229
+ - spec/prefs_spec.rb
230
+ - spec/spec_helper.rb
231
+ - spec/validator/alphabetic_validator_spec.rb
232
+ - spec/validator/alphanumeric_validator_spec.rb
233
+ - spec/validator/date_validator_spec.rb
234
+ - spec/validator/datetime_validator_spec.rb
235
+ - spec/validator/filepath_exists_validator_spec.rb
236
+ - spec/validator/non_nil_validator_spec.rb
237
+ - spec/validator/number_validator_spec.rb
238
+ - spec/validator/pref_validator_spec.rb
239
+ - spec/validator/time_validator_spec.rb
240
+ - spec/validator/url_validator_spec.rb
202
241
  - test/pref_test.rb
203
242
  - test/prefs_test.rb
204
- - test/string_extesions_test.rb
205
- - test/test_files/configuration.yaml
206
- - test/test_files/prefstest.yaml
207
- - test/test_files/test_action.rb
208
- - test/test_files/test_behavior.rb
209
- - test/test_files/test_validator.rb
210
243
  - test/test_helper.rb
211
- - test/validator_tests/alphabetic_validator_test.rb
212
- - test/validator_tests/alphanumeric_validator_test.rb
213
- - test/validator_tests/date_validator_test.rb
214
- - test/validator_tests/datetime_validator_test.rb
215
- - test/validator_tests/filepath_exists_validator_test.rb
216
- - test/validator_tests/non_nil_validator_test.rb
217
- - test/validator_tests/number_validator_test.rb
218
- - test/validator_tests/time_validator_test.rb
219
- - test/validator_tests/url_validator_test.rb
220
244
  has_rdoc: