gravitext-util 1.6.2-java → 1.7.0-java

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.
@@ -1,3 +1,11 @@
1
+ === 1.7.0 (2012-11-8)
2
+ * Add Gravitext::DateSupport module, TimeDelta, JDate extension for
3
+ ruby core Time style basic math operations with java.util.Date
4
+ * Add ArrayHTMap.putAll() (optimized), augment(); Use put_all for ruby
5
+ UniMap.merge( UniMap )
6
+ * Optimize KeySpace.keys() array public access
7
+ * Fix error message in ArrayHTMap same KeySpace check
8
+
1
9
  === 1.6.2 (2012-9-15)
2
10
  * Upgrade/broaden to slf4j [1.6.5,1.8), logback ~> 1.2 (now dev)
3
11
 
@@ -9,11 +9,13 @@ bin/gravitext-perftest
9
9
  lib/gravitext-util/version.rb
10
10
  lib/gravitext-util.rb
11
11
  lib/gravitext-util/concurrent.rb
12
+ lib/gravitext-util/date_support.rb
12
13
  lib/gravitext-util/perftest.rb
13
14
  lib/gravitext-util/unimap.rb
14
15
  test/setup.rb
15
16
  test/test_concurrent.rb
17
+ test/test_date_support.rb
16
18
  test/test_ioutils.rb
17
19
  test/test_perftest.rb
18
20
  test/test_unimap.rb
19
- lib/gravitext-util/gravitext-util-1.6.2.jar
21
+ lib/gravitext-util/gravitext-util-1.7.0.jar
@@ -0,0 +1,225 @@
1
+ #--
2
+ # Copyright (c) 2012 David Kellum
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you
5
+ # may not use this file except in compliance with the License. You
6
+ # may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13
+ # implied. See the License for the specific language governing
14
+ # permissions and limitations under the License.
15
+ #++
16
+
17
+ require 'gravitext-util/version'
18
+ require 'java'
19
+
20
+ module Gravitext::DateSupport
21
+
22
+ # Alias for java.util.Date
23
+ JDate = Java::java.util.Date
24
+
25
+ # One second in milliseconds
26
+ SEC_TO_MS = 1_000
27
+
28
+ # One minute in milliseconds
29
+ MIN_TO_MS = 60 * 1_000
30
+
31
+ # One hour in milliseconds
32
+ HOUR_TO_MS = 60 * 60 * 1_000
33
+
34
+ # One day in milliseconds
35
+ DAY_TO_MS = 24 * 60 * 60 * 1_000
36
+
37
+ # Return TimeDelta given Numeric seconds
38
+ def d_secs( v )
39
+ TimeDelta.new( SEC_TO_MS * v )
40
+ end
41
+
42
+ # Return TimeDelta given Numeric minutes
43
+ def d_mins( v )
44
+ TimeDelta.new( MIN_TO_MS * v )
45
+ end
46
+
47
+ # Return TimeDelta gioven Numeric hours
48
+ def d_hours( v )
49
+ TimeDelta.new( HOUR_TO_MS * v )
50
+ end
51
+
52
+ # Return TimeDelta gioven Numeric days
53
+ def d_days( v )
54
+ TimeDelta.new( DAY_TO_MS * v )
55
+ end
56
+
57
+ # A Calendar-unaware, immutable, positive or negative time duration
58
+ # optimized for Java's Integer milliseconds resolution and offering
59
+ # various convenience methods for conversion.
60
+ class TimeDelta
61
+
62
+ # Return milliseconds as initialized
63
+ attr_reader :msecs
64
+
65
+ # New TimeDelta given Numeric, positive or negative
66
+ # milliseconds. Optimized for Integer msecs.
67
+ def initialize( msecs )
68
+ @msecs = msecs
69
+ end
70
+
71
+ # True if other is a TimeDelta with equal msecs.
72
+ def ==( other )
73
+ other.is_a?( TimeDelta ) && ( @msecs == other.msecs )
74
+ end
75
+
76
+ # Compare this with other TimeDelta.
77
+ def <=>( other )
78
+ @msecs <=> other.msecs
79
+ end
80
+
81
+ # Return a new TimeDelta representing the sum of this and other
82
+ # TimeDelta
83
+ def +( other )
84
+ TimeDelta.new( @msecs + other.msecs )
85
+ end
86
+
87
+ # Return a new TimeDelta representing the difference of this and
88
+ # other TimeDelta.
89
+ def -( other )
90
+ TimeDelta.new( @msecs - other.msecs )
91
+ end
92
+
93
+ # Return hash code.
94
+ def hash
95
+ @msecs.hash
96
+ end
97
+
98
+ # Return delta as Integer seconds.
99
+ def to_i
100
+ ( @msecs / SEC_TO_MS ).to_i
101
+ end
102
+
103
+ # Return delta as Float seconds (with precision as initialized.)
104
+ def secs
105
+ @msecs / SEC_TO_MS_F
106
+ end
107
+
108
+ alias to_f secs
109
+
110
+ # Return delta as Rational seconds.
111
+ def to_r
112
+ Rational( @msecs, SEC_TO_MS )
113
+ end
114
+
115
+ # Return delta as Float minutes.
116
+ def mins
117
+ @msecs / MIN_TO_MS_F
118
+ end
119
+
120
+ # Return delta as Float hours.
121
+ def hours
122
+ @msecs / HOUR_TO_MS_F
123
+ end
124
+
125
+ # Return delta as Float days.
126
+ def days
127
+ @msecs / DAY_TO_MS_F
128
+ end
129
+
130
+ # Return String representation of this TimeDelta using
131
+ # "+/-(hh:)(mm:)(ss.uuu)" notation (where hour and minute
132
+ # components are only provided when non-zero.
133
+ def to_s
134
+ ms, neg = @msecs < 0 ? [ -@msecs, true ] : [ @msecs, false ]
135
+ secs = ( ms % MIN_TO_MS ) / SEC_TO_MS_F
136
+ mmins = ( ms / MIN_TO_MS ).to_i
137
+ hours, mins = mmins / 60, mmins % 60
138
+
139
+ pad = ( secs < 10.0 ) ? '0' : '';
140
+
141
+ if hours > 0
142
+ hours = -hours if neg
143
+ "%+d:%02d:%s%g" % [ hours, mins, pad, secs ]
144
+ elsif mins > 0
145
+ mins = -mins if neg
146
+ "%+d:%s%g" % [ mins, pad, secs ]
147
+ else
148
+ secs = -secs if neg
149
+ "%+g" % [ secs ]
150
+ end
151
+ end
152
+
153
+ private
154
+
155
+ SEC_TO_MS_F = SEC_TO_MS.to_f #:nodoc:
156
+ MIN_TO_MS_F = MIN_TO_MS.to_f #:nodoc:
157
+ HOUR_TO_MS_F = HOUR_TO_MS.to_f #:nodoc:
158
+ DAY_TO_MS_F = DAY_TO_MS.to_f #:nodoc:
159
+
160
+ end
161
+
162
+ # Extensions to java.util.Date for some basic math operations and
163
+ # and conversions.
164
+ class JDate
165
+
166
+ # Return conversion to ruby core Time (with millisecond precision).
167
+ def to_ruby
168
+ ems = self.time
169
+ Time.at( ems/1000, ( ems % 1000 ) * 1000 )
170
+ end
171
+
172
+ # Return the difference between self and other. If other is a
173
+ # JDate or ruby core Time, returns a TimeDelta. If other is a
174
+ # TimeDelta or Numeric (seconds), return a new JDate.
175
+ def -( other )
176
+ case( other )
177
+ when JDate
178
+ TimeDelta.new( self.time - other.time )
179
+ when TimeDelta
180
+ JDate.new( self.time - other.msecs )
181
+ when Numeric
182
+ JDate.new( self.time - ( other * 1000 ).to_i )
183
+ when Time
184
+ TimeDelta.new( self.time -
185
+ ( ( other.to_i * 1000 ) + other.usec / 1000 ) )
186
+ else
187
+ raise TypeError, "Can't subract #{other.class} from JDate"
188
+ end
189
+ end
190
+
191
+ # Return a new JDate representing the sum of self and other
192
+ # TimeDelta or Numeric (seconds).
193
+ def +( other )
194
+ case( other )
195
+ when TimeDelta
196
+ JDate.new( self.time + other.msecs )
197
+ when Numeric
198
+ JDate.new( self.time + ( other * 1000 ).to_i )
199
+ else
200
+ raise TypeError, "Can't add #{other.class} to JDate"
201
+ end
202
+ end
203
+
204
+ # Return age of self as a TimeDelta, by difference between the
205
+ # current time and self (with millisecond resolution.) Will be
206
+ # positive if self is "in the past".
207
+ def age
208
+ TimeDelta.new( JSystem.current_time_millis - self.time )
209
+ end
210
+
211
+ JSystem = Java::java.lang.System #:nodoc:
212
+
213
+ end
214
+
215
+ end
216
+
217
+ # Ruby core Time extension
218
+ class Time
219
+
220
+ # Return self, already ruby.
221
+ def to_ruby
222
+ self
223
+ end
224
+
225
+ end
@@ -201,18 +201,21 @@ module Gravitext::HTMap
201
201
  UniMap.deep_hash( self )
202
202
  end
203
203
 
204
- # Merge other (Hash or UniMap) and return new UniMap. Any nil
205
- # values from other Hash will result in removing the associated
206
- # key.
204
+ # Merge other (Hash or UniMap) and return new UniMap. Nil values
205
+ # in other Hash are ignored.
207
206
  def merge( other )
208
207
  clone.merge!( other )
209
208
  end
210
209
 
211
- # Merge other (Hash or UniMap) values to self. Any nil values from
212
- # other Hash will result in removing key from self.
210
+ # Merge other (Hash or UniMap) values to self. Nil values in other
211
+ # Hash are ignored.
213
212
  def merge!( other )
214
- other.each do |k,v|
215
- set( k, v )
213
+ if other.is_a?( UniMap )
214
+ put_all( other )
215
+ else
216
+ other.each do |k,v|
217
+ set( k, v ) unless v.nil?
218
+ end
216
219
  end
217
220
  self
218
221
  end
@@ -16,7 +16,7 @@
16
16
 
17
17
  module Gravitext
18
18
  module Util
19
- VERSION = '1.6.2'
19
+ VERSION = '1.7.0'
20
20
 
21
21
  LIB_DIR = File.dirname(__FILE__) # :nodoc:
22
22
  end
data/pom.xml CHANGED
@@ -4,7 +4,7 @@
4
4
  <groupId>com.gravitext</groupId>
5
5
  <artifactId>gravitext-util</artifactId>
6
6
  <packaging>jar</packaging>
7
- <version>1.6.2</version>
7
+ <version>1.7.0</version>
8
8
  <name>Gravitext Utilities</name>
9
9
  <url>http://gravitext.com/oss/gravitext-util</url>
10
10
 
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env jruby
2
+ #.hashdot.profile += jruby-shortlived
3
+
4
+ #--
5
+ # Copyright (c) 2012 David Kellum
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License"); you
8
+ # may not use this file except in compliance with the License. You
9
+ # may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied. See the License for the specific language governing
17
+ # permissions and limitations under the License.
18
+ #++
19
+
20
+ require File.join( File.dirname( __FILE__ ), "setup" )
21
+
22
+ require 'gravitext-util/date_support'
23
+
24
+ class TestDateSupport < MiniTest::Unit::TestCase
25
+ include Gravitext::DateSupport
26
+
27
+ def test_math
28
+ now = JDate.new
29
+ prior = ( now - ( d_mins( 20 ) + d_secs( 10.001 ) ) )
30
+ assert_equal( prior, now - ( 20 * 60.0 + 10.001 ) )
31
+ assert_kind_of( JDate, prior )
32
+ assert_equal( now, prior + ( d_mins( 20 ) + d_secs( 10.001 ) ) )
33
+ assert_equal( now, prior + ( 20 * 60.0 + 10.001 ) )
34
+ assert_equal( ( d_mins( 20 ) + d_secs( 10.001 ) ), now - prior )
35
+ end
36
+
37
+ def test_ruby_math
38
+ now = JDate.new
39
+ assert_equal( 0.0, ( now - now.to_ruby ).secs )
40
+ end
41
+
42
+ def test_age
43
+ prior = JDate.new - d_mins( 1 )
44
+ assert_in_delta( 60.0, prior.age.secs, 1.0 )
45
+ end
46
+
47
+ def test_to_ruby
48
+ now = JDate.new.to_ruby
49
+ assert_kind_of( Time, now )
50
+ assert_same( now, now.to_ruby )
51
+ assert_in_delta( 0.0, Time.now - now, 0.01 )
52
+ end
53
+
54
+ def test_seconds
55
+ assert_equal( 0.001, TimeDelta.new( 1 ).secs )
56
+ assert_equal( 0.9, TimeDelta.new( 900 ).secs )
57
+ assert_equal( -9.98, TimeDelta.new( -9980 ).secs )
58
+ assert_equal( 70.9, TimeDelta.new( 70900 ).secs )
59
+
60
+ assert_equal( -0.9, d_secs( -0.9 ).secs )
61
+ assert_equal( 70.9, d_secs( 70.9 ).secs )
62
+ end
63
+
64
+ def test_minutes
65
+ assert_equal( 0.015, TimeDelta.new( 900 ).mins )
66
+ assert_equal( -0.15, TimeDelta.new( -9000 ).mins )
67
+ assert_equal( 1.10, TimeDelta.new( 66000 ).mins )
68
+
69
+ assert_equal( -0.15, d_mins( -0.15 ).mins )
70
+ assert_equal( 1.10, d_mins( 1.10 ).mins )
71
+ end
72
+
73
+ def test_hours
74
+ assert_equal( 0.25, TimeDelta.new( 15 * 60 * 1_000 ).hours )
75
+ assert_equal( -1.5, TimeDelta.new( -90 * 60 * 1_000 ).hours )
76
+
77
+ assert_equal( 0.25, d_hours( 0.25 ).hours )
78
+ assert_equal( -1.5, d_hours( -1.5 ).hours )
79
+ end
80
+
81
+ def test_seconds_to_s
82
+ assert_equal( "+0.001", TimeDelta.new( 1 ).to_s )
83
+ assert_equal( "+0.9", TimeDelta.new( 900 ).to_s )
84
+ assert_equal( "+0.999", TimeDelta.new( 999 ).to_s )
85
+ assert_equal( "+1.9", TimeDelta.new( 1900 ).to_s )
86
+ assert_equal( "+9.98", TimeDelta.new( 9980 ).to_s )
87
+ end
88
+
89
+ def test_minutes_to_s
90
+ assert_equal( "+1:10.9", TimeDelta.new( 70900 ).to_s )
91
+ end
92
+
93
+ def test_hours_to_s
94
+ assert_equal( "+1:00:00.953",
95
+ TimeDelta.new( 1 * 60 * 60 * 1000 + 953 ).to_s )
96
+ assert_equal( "+99:14:01.001",
97
+ TimeDelta.new( 99 * 60 * 60 * 1000 +
98
+ 14 * 60 * 1000 + 1001 ).to_s )
99
+ end
100
+
101
+ def test_seconds_neg_to_s
102
+ assert_equal( "-0.001", TimeDelta.new( -1 ).to_s )
103
+ assert_equal( "-0.9", TimeDelta.new( -900 ).to_s )
104
+ assert_equal( "-0.999", TimeDelta.new( -999 ).to_s )
105
+ assert_equal( "-1.9", TimeDelta.new( -1900 ).to_s )
106
+ assert_equal( "-9.98", TimeDelta.new( -9980 ).to_s )
107
+ end
108
+
109
+ def test_minute_neg_to_s
110
+ assert_equal( "-1:10.9", TimeDelta.new( -70900 ).to_s )
111
+ end
112
+
113
+ def test_hours_neg_to_s
114
+ assert_equal( "-1:00:00.953",
115
+ TimeDelta.new( -1 * 60 * 60 * 1000 + -953 ).to_s )
116
+ assert_equal( "-99:14:01.001",
117
+ TimeDelta.new( -99 * 60 * 60 * 1000 +
118
+ -14 * 60 * 1000 + -1001 ).to_s )
119
+ end
120
+
121
+ end
metadata CHANGED
@@ -1,128 +1,149 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gravitext-util
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.6.2
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.7.0
6
6
  platform: java
7
- authors:
8
- - David Kellum
9
- autorequire:
7
+ authors:
8
+ - David Kellum
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-09-15 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rjack-slf4j
17
- version_requirements: &id001 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.6.5
23
- - - <
24
- - !ruby/object:Gem::Version
25
- version: "1.8"
26
- requirement: *id001
27
- prerelease: false
28
- type: :runtime
29
- - !ruby/object:Gem::Dependency
30
- name: rjack-logback
31
- version_requirements: &id002 !ruby/object:Gem::Requirement
32
- none: false
33
- requirements:
34
- - - ~>
35
- - !ruby/object:Gem::Version
36
- version: "1.2"
37
- requirement: *id002
38
- prerelease: false
39
- type: :development
40
- - !ruby/object:Gem::Dependency
41
- name: minitest
42
- version_requirements: &id003 !ruby/object:Gem::Requirement
43
- none: false
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: "2.3"
48
- requirement: *id003
49
- prerelease: false
50
- type: :development
51
- - !ruby/object:Gem::Dependency
52
- name: rjack-tarpit
53
- version_requirements: &id004 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ~>
57
- - !ruby/object:Gem::Version
58
- version: "2.0"
59
- requirement: *id004
60
- prerelease: false
61
- type: :development
62
- description:
63
- email:
64
- - dek-oss@gravitext.com
65
- executables:
66
- - gravitext-ioutil-perftest
67
- - gravitext-perftest
12
+ date: 2012-11-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rjack-slf4j
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: 1.6.5
21
+ - - <
22
+ - !ruby/object:Gem::Version
23
+ version: '1.8'
24
+ none: false
25
+ requirement: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.6.5
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '1.8'
33
+ none: false
34
+ prerelease: false
35
+ type: :runtime
36
+ - !ruby/object:Gem::Dependency
37
+ name: rjack-logback
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ version: '1.2'
43
+ none: false
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '1.2'
49
+ none: false
50
+ prerelease: false
51
+ type: :development
52
+ - !ruby/object:Gem::Dependency
53
+ name: minitest
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: '2.3'
59
+ none: false
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ version: '2.3'
65
+ none: false
66
+ prerelease: false
67
+ type: :development
68
+ - !ruby/object:Gem::Dependency
69
+ name: rjack-tarpit
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '2.0'
75
+ none: false
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: '2.0'
81
+ none: false
82
+ prerelease: false
83
+ type: :development
84
+ description:
85
+ email:
86
+ - dek-oss@gravitext.com
87
+ executables:
88
+ - gravitext-ioutil-perftest
89
+ - gravitext-perftest
68
90
  extensions: []
69
-
70
- extra_rdoc_files:
71
- - History.rdoc
72
- - README.rdoc
73
- files:
74
- - History.rdoc
75
- - Manifest.txt
76
- - NOTICE.txt
77
- - README.rdoc
78
- - Rakefile
79
- - pom.xml
80
- - bin/gravitext-ioutil-perftest
81
- - bin/gravitext-perftest
82
- - lib/gravitext-util/version.rb
83
- - lib/gravitext-util.rb
84
- - lib/gravitext-util/concurrent.rb
85
- - lib/gravitext-util/perftest.rb
86
- - lib/gravitext-util/unimap.rb
87
- - test/setup.rb
88
- - test/test_concurrent.rb
89
- - test/test_ioutils.rb
90
- - test/test_perftest.rb
91
- - test/test_unimap.rb
92
- - lib/gravitext-util/gravitext-util-1.6.2.jar
91
+ extra_rdoc_files:
92
+ - History.rdoc
93
+ - README.rdoc
94
+ files:
95
+ - History.rdoc
96
+ - Manifest.txt
97
+ - NOTICE.txt
98
+ - README.rdoc
99
+ - Rakefile
100
+ - pom.xml
101
+ - bin/gravitext-ioutil-perftest
102
+ - bin/gravitext-perftest
103
+ - lib/gravitext-util/version.rb
104
+ - lib/gravitext-util.rb
105
+ - lib/gravitext-util/concurrent.rb
106
+ - lib/gravitext-util/date_support.rb
107
+ - lib/gravitext-util/perftest.rb
108
+ - lib/gravitext-util/unimap.rb
109
+ - test/setup.rb
110
+ - test/test_concurrent.rb
111
+ - test/test_date_support.rb
112
+ - test/test_ioutils.rb
113
+ - test/test_perftest.rb
114
+ - test/test_unimap.rb
115
+ - lib/gravitext-util/gravitext-util-1.7.0.jar
93
116
  homepage: http://gravitext.rubyforge.org
94
117
  licenses: []
95
-
96
- post_install_message:
97
- rdoc_options:
98
- - --main
99
- - README.rdoc
100
- require_paths:
101
- - lib
102
- required_ruby_version: !ruby/object:Gem::Requirement
118
+ post_install_message:
119
+ rdoc_options:
120
+ - --main
121
+ - README.rdoc
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ segments:
130
+ - 0
131
+ hash: 2
103
132
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 2
108
- segments:
109
- - 0
110
- version: "0"
111
- required_rubygems_version: !ruby/object:Gem::Requirement
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ segments:
139
+ - 0
140
+ hash: 2
112
141
  none: false
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- hash: 2
117
- segments:
118
- - 0
119
- version: "0"
120
142
  requirements: []
121
-
122
- rubyforge_project:
123
- rubygems_version: 1.8.15
124
- signing_key:
143
+ rubyforge_project:
144
+ rubygems_version: 1.8.24
145
+ signing_key:
125
146
  specification_version: 3
126
147
  summary: A collection of core java utilities, many with jruby adaptions.
127
148
  test_files: []
128
-
149
+ ...