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.
- data/History.rdoc +8 -0
- data/Manifest.txt +3 -1
- data/lib/gravitext-util/date_support.rb +225 -0
- data/lib/gravitext-util/{gravitext-util-1.6.2.jar → gravitext-util-1.7.0.jar} +0 -0
- data/lib/gravitext-util/unimap.rb +10 -7
- data/lib/gravitext-util/version.rb +1 -1
- data/pom.xml +1 -1
- data/test/test_date_support.rb +121 -0
- metadata +136 -115
data/History.rdoc
CHANGED
@@ -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
|
|
data/Manifest.txt
CHANGED
@@ -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.
|
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
|
Binary file
|
@@ -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.
|
205
|
-
#
|
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.
|
212
|
-
#
|
210
|
+
# Merge other (Hash or UniMap) values to self. Nil values in other
|
211
|
+
# Hash are ignored.
|
213
212
|
def merge!( other )
|
214
|
-
other.
|
215
|
-
|
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
|
data/pom.xml
CHANGED
@@ -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.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.7.0
|
6
6
|
platform: java
|
7
|
-
authors:
|
8
|
-
|
9
|
-
autorequire:
|
7
|
+
authors:
|
8
|
+
- David Kellum
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
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
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
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
|
-
|
123
|
-
|
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
|
+
...
|