clasp-ruby 0.13.2 → 0.13.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 888f30cc9dbb790874262a1b63c79673fba947440f3c3d1d3d28f162c74326d4
4
- data.tar.gz: 3c26abb10e9dc9194cd7bd25e0e6dcf8c84450f899ceb0d5ae6c2dcfe8b23242
3
+ metadata.gz: c07b382022138ca0b59651dd4c3caed38fede09841da24233f80af67e346f5f8
4
+ data.tar.gz: 6dfacd4e8c76f6f8f9b0ff589e718dcac35b66d8db9c0d1f8c0fe50938c0bef3
5
5
  SHA512:
6
- metadata.gz: ab50428df60b73aae5963afef09b3bf68a9f6bd189bd8d3e09ce52e9b4e91cf51923a9211be14c6f4d7452ebac234f98293a9ce0589a4ec20ec8e6e55149f1e3
7
- data.tar.gz: df63ce0472c547f49008fe732138993bfb1c932791c23eed131dc0ad2e837073cbd1e50b55d8e2b442b7086064176b38f96c762b5c503722c213f4f3cf4924d3
6
+ metadata.gz: 58c5e616aee6376b8021d603b99e0e0d11c6e6f4a2b8f819756407d8af2757e2db672ff5b710aa830ec043e2df973f84c273e8faefd677c792bc2243c8d02840
7
+ data.tar.gz: 40ec8642a2a1f516b6864473912182993b9a8b442c8839db0edd92638d66e860bf05c4800f6e8de2447c10c82457a46d7435b99afd343cf91c927645131cb152
@@ -5,7 +5,7 @@
5
5
  # Purpose: Command-line interface
6
6
  #
7
7
  # Created: 27th July 2015
8
- # Updated: 7th February 2018
8
+ # Updated: 1st March 2018
9
9
  #
10
10
  # Home: http://github.com/synesissoftware/CLASP.Ruby
11
11
  #
@@ -62,6 +62,12 @@ module CLASP
62
62
  # :stopdoc:
63
63
  module CLI_helpers_
64
64
 
65
+ module Constants
66
+
67
+ VALID_ALIAS_TYPES = [ Flag, Option, Alias ]
68
+ VALID_ALIAS_TYPES_STRING = VALID_ALIAS_TYPES[0...-1].join(', ') + ', or ' + VALID_ALIAS_TYPES[-1].to_s
69
+ end # module Constants
70
+
65
71
  # :nodoc:
66
72
  def self.generate_version_string_ options
67
73
 
@@ -126,7 +132,8 @@ def self.show_usage aliases, options={}
126
132
  raise ArgumentError, "aliases may not be nil" if aliases.nil?
127
133
  raise TypeError, "aliases must be an array or must respond to each, reject and select" unless ::Array === aliases || (aliases.respond_to?(:each) && aliases.respond_to?(:reject) && aliases.respond_to?(:select))
128
134
 
129
- aliases.each { |a| raise TypeError, "each element in aliases must be a Flag or an Option" unless [ ::CLASP::Alias, ::CLASP::Flag, ::CLASP::Option ].any? { |c| c === a } }
135
+ constants = CLI_helpers_::Constants
136
+ aliases.each { |a| raise ::TypeError, "each element in aliases array must be one of the types #{constants::VALID_ALIAS_TYPES_STRING}" unless constants::VALID_ALIAS_TYPES.any? { |c| c === a } }
130
137
 
131
138
  alias_dups = {}
132
139
  aliases.each { |a| a.aliases.each { |aa| warn "WARNING: alias '#{aa}' is already used for alias '#{a}'" if alias_dups.has_key? aa; alias_dups[aa] = a; } }
@@ -262,7 +269,8 @@ def self.show_version aliases, options = {}
262
269
  raise ArgumentError, "aliases may not be nil" if aliases.nil?
263
270
  raise TypeError, "aliases must be an array or must respond to each, reject and select" unless ::Array === aliases || (aliases.respond_to?(:each) && aliases.respond_to?(:reject) && aliases.respond_to?(:select))
264
271
 
265
- aliases.each { |a| raise TypeError, "each element in aliases must be a Flag or an Option" unless a.is_a?(::CLASP::Flag) || a.is_a?(::CLASP::Option) }
272
+ constants = CLI_helpers_::Constants
273
+ aliases.each { |a| raise ::TypeError, "each element in aliases array must be one of the types #{constants::VALID_ALIAS_TYPES_STRING}" unless constants::VALID_ALIAS_TYPES.any? { |c| c === a } }
266
274
 
267
275
  stream = options[:stream] || $stdout
268
276
 
@@ -5,7 +5,7 @@
5
5
  # Purpose: Version for CLASP.Ruby library
6
6
  #
7
7
  # Created: 16th November 2014
8
- # Updated: 23rd February 2018
8
+ # Updated: 2nd March 2018
9
9
  #
10
10
  # Home: http://github.com/synesissoftware/CLASP.Ruby
11
11
  #
@@ -51,7 +51,7 @@
51
51
  module CLASP
52
52
 
53
53
  # Current version of the CLASP.Ruby library
54
- VERSION = '0.13.2'
54
+ VERSION = '0.13.3'
55
55
 
56
56
  private
57
57
  VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
4
+
5
+ require 'clasp'
6
+
7
+ require 'test/unit'
8
+
9
+ require 'xqsr3/extensions/test/unit'
10
+
11
+ require 'stringio'
12
+
13
+ class Test_CLI < Test::Unit::TestCase
14
+
15
+ def test_invalid_aliases_types
16
+
17
+ assert_raise_with_message(::TypeError, 'each element in aliases array must be one of the types CLASP::Flag, CLASP::Option, or CLASP::Alias') { CLASP.show_usage([ 'abc', :def ]) }
18
+
19
+ assert_raise_with_message(::TypeError, 'each element in aliases array must be one of the types CLASP::Flag, CLASP::Option, or CLASP::Alias') { CLASP.show_version([ 'abc', :def ]) }
20
+ end
21
+ end
22
+
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clasp-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wilson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-23 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2018-03-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: xqsr3
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.22'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.22'
13
27
  description: |
14
28
  Command-Line Argument Sorting and Parsing library that provides a powerful
15
29
  abstraction of command-line interpretation facilities. CLASP.Ruby is a Ruby port of the popular CLASP (C/C++) library, and provides declarative specification of command-line flags and options, aliasing, flag combination, UNIX de-facto standard flag processing, and a number of utility functions for expressing usage and version information.
@@ -40,6 +54,7 @@ files:
40
54
  - test/unit/tc_arguments_1.rb
41
55
  - test/unit/tc_arguments_2.rb
42
56
  - test/unit/tc_arguments_3.rb
57
+ - test/unit/tc_cli.rb
43
58
  - test/unit/tc_defaults_1.rb
44
59
  - test/unit/tc_examples_Arguments.rb
45
60
  - test/unit/tc_extras.rb
@@ -58,12 +73,12 @@ require_paths:
58
73
  - lib
59
74
  required_ruby_version: !ruby/object:Gem::Requirement
60
75
  requirements:
61
- - - '>='
76
+ - - ">="
62
77
  - !ruby/object:Gem::Version
63
78
  version: '0'
64
79
  required_rubygems_version: !ruby/object:Gem::Requirement
65
80
  requirements:
66
- - - '>='
81
+ - - ">="
67
82
  - !ruby/object:Gem::Version
68
83
  version: '0'
69
84
  requirements: []