sleeping_king_studios-tools 0.1.3 → 0.2.0.beta.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4b7111cf4b4f6b005040f3040ce4f00fda6703e
4
- data.tar.gz: dd2acf0424f4b3e8502c6da84d15572632844249
3
+ metadata.gz: 6e8dad1b2f806deaa242881f79db4d56f4058dfb
4
+ data.tar.gz: 3ff535315372519db5ab455483baec4499e401e4
5
5
  SHA512:
6
- metadata.gz: fcce92c9ac9b43e9bc348a7fa3fe3ea54dd1ea4572fec9b7b2a59907f03a3504a8a65eb2927b09d8252b662f8ef35fa18db999dc6ff7b7da7037a0db3d7a1992
7
- data.tar.gz: 0640a33c51657bc9ad86aab8778cb54d8428b56748fc648b0ead8909d84e2d5b13fde40228758c01aa911b33ba21fbc60dcd9630a7bdf7aec8ab38e4c59dc220
6
+ metadata.gz: 0a168b831645d542efbdafa26cb99a751047a887a49bf3b1b09dc9947aea0883c7fe097577222295c15c8ed7aece5563e50cc906404ef9333f4bb98226a48b9b
7
+ data.tar.gz: 4534a229197c7d499f7ef958f25a33b7a89b0450d219240ad0d78ead2892f0c5c12502bab509db2fdd98beb7f4ad4b11fa5d5e091ceb05c017d1fe73b77c1aff
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Pre-release Versions
4
4
 
5
+ ### 0.2.0
6
+
7
+ Split EnumerableTools into ArrayTools and HashTools.
8
+
9
+ Implement ArrayTools#deep_dup, HashTools#deep_dup and ObjectTools#deep_dup.
10
+
5
11
  ### 0.1.3
6
12
 
7
13
  Properly support both keywords and optional arguments in ObjectTools#apply.
data/README.md CHANGED
@@ -12,41 +12,79 @@ Hi, I'm Rob Smith, a Ruby Engineer and the developer of this library. I use thes
12
12
 
13
13
  ## Tools
14
14
 
15
- ### Enumerable Tools
15
+ ### Array Tools
16
16
 
17
- require 'sleeping_king_studios/tools/enumerable_tools'
17
+ require 'sleeping_king_studios/tools/array_tools'
18
18
 
19
- Tools for working with enumerable objects, such as arrays and hashes.
19
+ Tools for working with array-like enumerable objects.
20
20
 
21
21
  #### `#count_values`
22
22
 
23
- Counts the number of times each value appears in the enumerable object, or if a block is given, calls the block with each item and counts the number of times each result appears.
23
+ Counts the number of times each value appears in the array, or if a block is given, calls the block with each item and counts the number of times each result appears.
24
24
 
25
- EnumerableTools.count_values([1, 1, 1, 2, 2, 3])
25
+ ArrayTools.count_values([1, 1, 1, 2, 2, 3])
26
26
  #=> { 1 => 3, 2 => 2, 3 => 1 }
27
27
 
28
- EnumerableTools.count_values([1, 1, 1, 2, 2, 3]) { |i| i ** 2 }
28
+ ArrayTools.count_values([1, 1, 1, 2, 2, 3]) { |i| i ** 2 }
29
29
  #=> { 1 => 3, 4 => 2, 9 => 1 }
30
30
 
31
- EnumerableTools.count_values([1, 1, 1, 2, 2, 3], &:even?)
31
+ ArrayTools.count_values([1, 1, 1, 2, 2, 3], &:even?)
32
32
  #=> { false => 4, true => 2 }
33
33
 
34
+ #### `#deep_dup`
35
+
36
+ Creates a deep copy of the object by returning a new Array with deep copies of each array item. See also ObjectTools#deep_dup[#label-Object+Tools].
37
+
38
+ ary = ['one', 'two', 'three']
39
+ cpy = ArrayTools.deep_dup ary
40
+
41
+ cpy << 'four'
42
+ #=> ['one', 'two', 'three', 'four']
43
+ ary
44
+ #=> ['one', 'two', 'three']
45
+
46
+ cpy.first.sub!(/on/, 'vu'); cpy
47
+ #=> ['vun', 'two', 'three', 'four']
48
+ ary
49
+ #=> ['one', 'two', 'three']
50
+
34
51
  #### `#humanize_list`
35
52
 
36
53
  Accepts a list of values and returns a human-readable string of the values, with the format based on the number of items.
37
54
 
38
55
  # With One Item
39
- EnumerableTools.humanize_list(['spam'])
56
+ ArrayTools.humanize_list(['spam'])
40
57
  #=> 'spam'
41
58
 
42
59
  # With Two Items
43
- EnumerableTools.humanize_list(['spam', 'eggs'])
60
+ ArrayTools.humanize_list(['spam', 'eggs'])
44
61
  #=> 'spam and eggs'
45
62
 
46
63
  # With Three Or More Items
47
- EnumerableTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'])
64
+ ArrayTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'])
48
65
  #=> 'spam, eggs, bacon, and spam'
49
66
 
67
+ ### Hash Tools
68
+
69
+ Tools for working with array-like enumerable objects.
70
+
71
+ #### `#deep_dup`
72
+
73
+ Creates a deep copy of the object by returning a new Hash with deep copies of each key and value. See also ObjectTools#deep_dup[#label-Object+Tools].
74
+
75
+ hsh = { :one => 'one', :two => 'two', :three => 'three' }
76
+ cpy = HashTools.deep_dup hsh
77
+
78
+ cpy.update :four => 'four'
79
+ #=> { :one => 'one', :two => 'two', :three => 'three', :four => 'four' }
80
+ hsh
81
+ #=> { :one => 'one', :two => 'two', :three => 'three' }
82
+
83
+ cpy[:one].sub!(/on/, 'vu'); cpy
84
+ #=> { :one => 'vun', :two => 'two', :three => 'three', :four => 'four' }
85
+ hsh
86
+ #=> { :one => 'one', :two => 'two', :three => 'three' }
87
+
50
88
  ### Integer Tools
51
89
 
52
90
  Tools for working with integers and fixnums.
@@ -110,6 +148,40 @@ Takes a proc or lambda and invokes it with the given object as receiver, with an
110
148
  ObjectTools.apply my_object, my_proc
111
149
  #=> Writes 'A mock object says "Greetings, programs!"' to STDOUT.
112
150
 
151
+ #### `#deep_dup`
152
+
153
+ Creates a deep copy of the object. If the object is an Array, returns a new Array with deep copies of each array item (see ArrayTools#deep_dup[#label-Array+Tools]). If the object is a Hash, returns a new Hash with deep copies of each hash key and value (see HashTools#deep_dup[#label-Hash+Tools]). Otherwise, returns Object#dup.
154
+
155
+ data = {
156
+ :songs = [
157
+ {
158
+ :name => 'Welcome to the Jungle',
159
+ :artist => "Guns N' Roses",
160
+ :album => 'Appetite for Destruction'
161
+ }, # end hash
162
+ {
163
+ :name => 'Hells Bells',
164
+ :artist => 'AC/DC',
165
+ :album => 'Back in Black'
166
+ }, # end hash
167
+ {
168
+ :name => "Knockin' on Heaven's Door",
169
+ :artist => 'Bob Dylan',
170
+ :album => 'Pat Garrett & Billy The Kid'
171
+ } # end hash
172
+ ] # end array
173
+ } # end hash
174
+
175
+ copy = ObjectTools.deep_dup data
176
+
177
+ copy[:songs] << { :name => 'Sympathy for the Devil', :artist => 'The Rolling Stones', :album => 'Beggars Banquet' }
178
+ data[:songs].count
179
+ #=> 3
180
+
181
+ copy[:songs][1][:name] = 'Shoot to Thrill'
182
+ data[:songs][1]
183
+ #=> { :name => 'Hells Bells', :artist => 'AC/DC', :album => 'Back in Black' }
184
+
113
185
  #### `#eigenclass`, `#metaclass`
114
186
 
115
187
  Returns the object's eigenclass.
@@ -0,0 +1,111 @@
1
+ # lib/sleeping_king_studios/tools/array_tools.rb
2
+
3
+ require 'sleeping_king_studios/tools'
4
+ require 'sleeping_king_studios/tools/object_tools'
5
+
6
+ module SleepingKingStudios::Tools
7
+ # Tools for working with array-like enumerable objects.
8
+ module ArrayTools
9
+ extend self
10
+
11
+ # @overload count_values(values)
12
+ # Counts the number of times each value appears in the enumerable object.
13
+ #
14
+ # @example
15
+ # ArrayTools.count_values([1, 1, 1, 2, 2, 3])
16
+ # #=> { 1 => 3, 2 => 2, 3 => 1 }
17
+ #
18
+ # @param [Array<Object>] values The values to count.
19
+ #
20
+ # @return [Hash{Object, Integer}] The number of times each value appears
21
+ # in the enumerable object.
22
+ #
23
+ # @overload count_values(values, &block)
24
+ # Calls the block with each item and counts the number of times each
25
+ # result appears.
26
+ #
27
+ # @example
28
+ # ArrayTools.count_values([1, 1, 1, 2, 2, 3]) { |i| i ** 2 }
29
+ # #=> { 1 => 3, 4 => 2, 9 => 1 }
30
+ #
31
+ # @param [Array<Object>] values The values to count.
32
+ #
33
+ # @return [Hash{Object, Integer}] The number of times each result
34
+ # appears.
35
+ #
36
+ # @yield item An item in the array to be converted to a countable result.
37
+ def count_values values, &block
38
+ values.each.with_object({}) do |item, hsh|
39
+ value = block_given? ? block.call(item) : item
40
+ hsh[value] = hsh.fetch(value, 0) + 1
41
+ end # each
42
+ end # method count_values
43
+
44
+ # Creates a deep copy of the object by returning a new Array with deep
45
+ # copies of each array item.
46
+ #
47
+ # @param [Array<Object>] ary The array to copy.
48
+ #
49
+ # @return [Array] The copy of the array.
50
+ def deep_dup ary
51
+ ary.map { |obj| ObjectTools.deep_dup obj }
52
+ end # method deep_dup
53
+
54
+ # Accepts a list of values and returns a human-readable string of the
55
+ # values, with the format based on the number of items.
56
+ #
57
+ # @example With Zero Items
58
+ # ArrayTools.humanize_list([])
59
+ # #=> ''
60
+ #
61
+ # @example With One Item
62
+ # ArrayTools.humanize_list(['spam'])
63
+ # #=> 'spam'
64
+ #
65
+ # @example With Two Items
66
+ # ArrayTools.humanize_list(['spam', 'eggs'])
67
+ # #=> 'spam and eggs'
68
+ #
69
+ # @example With Three Or More Items
70
+ # ArrayTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'])
71
+ # #=> 'spam, eggs, bacon, and spam'
72
+ #
73
+ # @example With Three Or More Items And Options
74
+ # ArrayTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'], :last_separator => ' or ')
75
+ # #=> 'spam, eggs, bacon, or spam'
76
+ #
77
+ # @param [Array<String>] values The list of values to format. Will be
78
+ # coerced to strings using #to_s.
79
+ # @param [Hash] options Optional configuration hash.
80
+ # @option options [String] :last_separator The value to use to separate
81
+ # the final pair of values. Defaults to " and " (note the leading and
82
+ # trailing spaces). Will be combined with the :separator for lists of
83
+ # length 3 or greater.
84
+ # @option options [String] :separator The value to use to separate pairs
85
+ # of values before the last in lists of length 3 or greater. Defaults to
86
+ # ", " (note the trailing space).
87
+ #
88
+ # @return [String] The formatted string.
89
+ def humanize_list values, options = {}
90
+ separator = options.fetch(:separator, ', ')
91
+ last_separator = options.fetch(:last_separator, ' and ')
92
+
93
+ case values.count
94
+ when 0
95
+ ''
96
+ when 1
97
+ values.first.to_s
98
+ when 2
99
+ "#{values[0]}#{last_separator}#{values[1]}"
100
+ else
101
+ if last_separator =~ /\A,?\s*/
102
+ last_separator = last_separator.sub /\A,?\s*/, separator
103
+ else
104
+ last_separator = "#{separator}#{last_separator}"
105
+ end # if-else
106
+
107
+ "#{values[0...-1].join(separator)}#{last_separator}#{values.last}"
108
+ end # case
109
+ end # method humanize_list
110
+ end # module
111
+ end # module
@@ -1,100 +1,8 @@
1
1
  # lib/sleeping_king_studios/tools/enumerable_tools.rb
2
2
 
3
- require 'sleeping_king_studios/tools'
3
+ require 'sleeping_king_studios/tools/array_tools'
4
4
 
5
5
  module SleepingKingStudios::Tools
6
- # Tools for working with enumerable objects, such as arrays and hashes.
7
- module EnumerableTools
8
- extend self
9
-
10
- # @overload count_values(values)
11
- # Counts the number of times each value appears in the enumerable object.
12
- #
13
- # @example
14
- # ArrayTools.count_values([1, 1, 1, 2, 2, 3])
15
- # #=> { 1 => 3, 2 => 2, 3 => 1 }
16
- #
17
- # @param [Array<Object>] values The values to count.
18
- #
19
- # @return [Hash{Object, Integer}] The number of times each value appears
20
- # in the enumerable object.
21
- #
22
- # @overload count_values(values, &block)
23
- # Calls the block with each item and counts the number of times each
24
- # result appears.
25
- #
26
- # @example
27
- # ArrayTools.count_values([1, 1, 1, 2, 2, 3]) { |i| i ** 2 }
28
- # #=> { 1 => 3, 4 => 2, 9 => 1 }
29
- #
30
- # @param [Array<Object>] values The values to count.
31
- #
32
- # @return [Hash{Object, Integer}] The number of times each result
33
- # appears.
34
- #
35
- # @yield item An item in the array to be converted to a countable result.
36
- def count_values values, &block
37
- values.each.with_object({}) do |item, hsh|
38
- value = block_given? ? block.call(item) : item
39
- hsh[value] = hsh.fetch(value, 0) + 1
40
- end # each
41
- end # method count_values
42
-
43
- # Accepts a list of values and returns a human-readable string of the
44
- # values, with the format based on the number of items.
45
- #
46
- # @example With Zero Items
47
- # ArrayTools.humanize_list([])
48
- # #=> ''
49
- #
50
- # @example With One Item
51
- # ArrayTools.humanize_list(['spam'])
52
- # #=> 'spam'
53
- #
54
- # @example With Two Items
55
- # ArrayTools.humanize_list(['spam', 'eggs'])
56
- # #=> 'spam and eggs'
57
- #
58
- # @example With Three Or More Items
59
- # ArrayTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'])
60
- # #=> 'spam, eggs, bacon, and spam'
61
- #
62
- # @example With Three Or More Items And Options
63
- # ArrayTools.humanize_list(['spam', 'eggs', 'bacon', 'spam'], :last_separator => ' or ')
64
- # #=> 'spam, eggs, bacon, or spam'
65
- #
66
- # @param [Array<String>] values The list of values to format. Will be
67
- # coerced to strings using #to_s.
68
- # @param [Hash] options Optional configuration hash.
69
- # @option options [String] :last_separator The value to use to separate
70
- # the final pair of values. Defaults to " and " (note the leading and
71
- # trailing spaces). Will be combined with the :separator for lists of
72
- # length 3 or greater.
73
- # @option options [String] :separator The value to use to separate pairs
74
- # of values before the last in lists of length 3 or greater. Defaults to
75
- # ", " (note the trailing space).
76
- #
77
- # @return [String] The formatted string.
78
- def humanize_list values, options = {}
79
- separator = options.fetch(:separator, ', ')
80
- last_separator = options.fetch(:last_separator, ' and ')
81
-
82
- case values.count
83
- when 0
84
- ''
85
- when 1
86
- values.first.to_s
87
- when 2
88
- "#{values[0]}#{last_separator}#{values[1]}"
89
- else
90
- if last_separator =~ /\A,?\s*/
91
- last_separator = last_separator.sub /\A,?\s*/, separator
92
- else
93
- last_separator = "#{separator}#{last_separator}"
94
- end # if-else
95
-
96
- "#{values[0...-1].join(separator)}#{last_separator}#{values.last}"
97
- end # case
98
- end # method humanize_list
99
- end # module
6
+ # Alias for ArrayTools to ensure backward compatibility.
7
+ EnumerableTools = ArrayTools
100
8
  end # module
@@ -0,0 +1,23 @@
1
+ # lib/sleeping_king_studios/tools/hash_tools.rb
2
+
3
+ require 'sleeping_king_studios/tools'
4
+ require 'sleeping_king_studios/tools/object_tools'
5
+
6
+ module SleepingKingStudios::Tools
7
+ # Tools for working with hash-like enumerable objects.
8
+ module HashTools
9
+ extend self
10
+
11
+ # Creates a deep copy of the object by returning a new Hash with deep
12
+ # copies of each key and value.
13
+ #
14
+ # @param [Hash<Object>] hsh The hash to copy.
15
+ #
16
+ # @return [Hash] The copy of the hash.
17
+ def deep_dup hsh
18
+ hsh.each.with_object(Hash.new) do |(key, value), copy|
19
+ copy[ObjectTools.deep_dup key] = ObjectTools.deep_dup(value)
20
+ end # each
21
+ end # method deep_dup
22
+ end # module
23
+ end # module
@@ -37,6 +37,27 @@ module SleepingKingStudios::Tools
37
37
  end
38
38
  end # method apply
39
39
 
40
+ # Creates a deep copy of the object. If the object is an Array, returns a
41
+ # new Array with deep copies of each array item. If the object is a Hash,
42
+ # returns a new Hash with deep copies of each hash key and value. Otherwise,
43
+ # returns Object#dup.
44
+ #
45
+ # @param [Object] obj The object to copy.
46
+ #
47
+ # @return The copy of the object.
48
+ def deep_dup obj
49
+ case obj
50
+ when FalseClass, Fixnum, Float, NilClass, Symbol, TrueClass
51
+ obj
52
+ when Array
53
+ ArrayTools.deep_dup obj
54
+ when Hash
55
+ HashTools.deep_dup obj
56
+ else
57
+ obj.respond_to?(:deep_dup) ? obj.deep_dup : obj.dup
58
+ end # case
59
+ end # method deep_dup
60
+
40
61
  # Returns the object's eigenclass.
41
62
  #
42
63
  # @param [Object] object The object for which an eigenclass is required.
@@ -48,3 +69,6 @@ module SleepingKingStudios::Tools
48
69
  alias_method :metaclass, :eigenclass
49
70
  end # module
50
71
  end # module
72
+
73
+ require 'sleeping_king_studios/tools/array_tools'
74
+ require 'sleeping_king_studios/tools/hash_tools'
@@ -20,9 +20,6 @@ module SleepingKingStudios
20
20
  #
21
21
  # @see http://semver.org
22
22
  module SemanticVersion
23
- # @api private
24
- FETCH_DEFAULT = Object.new.freeze
25
-
26
23
  # Error class for handling missing constants in a version definition.
27
24
  class InvalidVersionError < StandardError; end
28
25
 
@@ -97,6 +94,8 @@ module SleepingKingStudios
97
94
 
98
95
  private
99
96
 
97
+ FETCH_DEFAULT = Object.new.freeze
98
+
100
99
  def const_fetch name, default = FETCH_DEFAULT
101
100
  if self.const_defined?(name)
102
101
  return self.const_get(name).to_s
@@ -10,9 +10,13 @@ module SleepingKingStudios
10
10
  module Version
11
11
  extend SleepingKingStudios::Tools::SemanticVersion
12
12
 
13
+ private
14
+
13
15
  MAJOR = 0
14
- MINOR = 1
15
- PATCH = 3
16
+ MINOR = 2
17
+ PATCH = 0
18
+ PRERELEASE = 'beta'
19
+ BUILD = 0
16
20
  end # module
17
21
 
18
22
  VERSION = Version.to_gem_version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sleeping_king_studios-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0.beta.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob "Merlin" Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,60 +16,68 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.3'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.10.3.2
19
+ version: '10.5'
23
20
  type: :development
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '10.3'
30
- - - ">="
26
+ version: '10.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: 0.10.3.2
33
+ version: '3.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.4'
33
41
  - !ruby/object:Gem::Dependency
34
- name: pry
42
+ name: byebug
35
43
  requirement: !ruby/object:Gem::Requirement
36
44
  requirements:
37
45
  - - "~>"
38
46
  - !ruby/object:Gem::Version
39
- version: '0.10'
47
+ version: '8.2'
40
48
  - - ">="
41
49
  - !ruby/object:Gem::Version
42
- version: 0.10.1
50
+ version: 8.2.2
43
51
  type: :development
44
52
  prerelease: false
45
53
  version_requirements: !ruby/object:Gem::Requirement
46
54
  requirements:
47
55
  - - "~>"
48
56
  - !ruby/object:Gem::Version
49
- version: '0.10'
57
+ version: '8.2'
50
58
  - - ">="
51
59
  - !ruby/object:Gem::Version
52
- version: 0.10.1
60
+ version: 8.2.2
53
61
  - !ruby/object:Gem::Dependency
54
- name: rspec
62
+ name: rspec-sleeping_king_studios
55
63
  requirement: !ruby/object:Gem::Requirement
56
64
  requirements:
57
65
  - - "~>"
58
66
  - !ruby/object:Gem::Version
59
- version: '3.1'
67
+ version: '2.1'
60
68
  - - ">="
61
69
  - !ruby/object:Gem::Version
62
- version: 3.1.0
70
+ version: 2.1.1
63
71
  type: :development
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
66
74
  requirements:
67
75
  - - "~>"
68
76
  - !ruby/object:Gem::Version
69
- version: '3.1'
77
+ version: '2.1'
70
78
  - - ">="
71
79
  - !ruby/object:Gem::Version
72
- version: 3.1.0
80
+ version: 2.1.1
73
81
  description: |
74
82
  A library of utility services and concerns to expand the functionality of core
75
83
  classes without polluting the global namespace.
@@ -83,7 +91,9 @@ files:
83
91
  - LICENSE
84
92
  - README.md
85
93
  - lib/sleeping_king_studios/tools.rb
94
+ - lib/sleeping_king_studios/tools/array_tools.rb
86
95
  - lib/sleeping_king_studios/tools/enumerable_tools.rb
96
+ - lib/sleeping_king_studios/tools/hash_tools.rb
87
97
  - lib/sleeping_king_studios/tools/integer_tools.rb
88
98
  - lib/sleeping_king_studios/tools/object_tools.rb
89
99
  - lib/sleeping_king_studios/tools/semantic_version.rb
@@ -104,9 +114,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
114
  version: '0'
105
115
  required_rubygems_version: !ruby/object:Gem::Requirement
106
116
  requirements:
107
- - - ">="
117
+ - - ">"
108
118
  - !ruby/object:Gem::Version
109
- version: '0'
119
+ version: 1.3.1
110
120
  requirements: []
111
121
  rubyforge_project:
112
122
  rubygems_version: 2.5.1
@@ -114,3 +124,4 @@ signing_key:
114
124
  specification_version: 4
115
125
  summary: A library of utility services and concerns.
116
126
  test_files: []
127
+ has_rdoc: