resin 0.3.0 → 0.3.1

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 (50) hide show
  1. data/amber/bin/amberc +4 -3
  2. data/amber/js/IDE.deploy.js +147 -45
  3. data/amber/js/IDE.js +155 -53
  4. data/amber/js/Kernel-Classes.deploy.js +20 -14
  5. data/amber/js/Kernel-Classes.js +29 -18
  6. data/amber/js/Kernel-Collections.deploy.js +82 -0
  7. data/amber/js/Kernel-Collections.js +102 -0
  8. data/amber/js/Kernel-Methods.deploy.js +374 -261
  9. data/amber/js/Kernel-Methods.js +417 -269
  10. data/amber/js/Kernel-Objects.deploy.js +90 -28
  11. data/amber/js/Kernel-Objects.js +121 -34
  12. data/amber/js/Kernel-Tests.deploy.js +35 -0
  13. data/amber/js/Kernel-Tests.js +45 -0
  14. data/amber/js/SUnit.deploy.js +175 -17
  15. data/amber/js/SUnit.js +237 -24
  16. data/amber/js/amber.js +2 -1
  17. data/amber/js/boot.js +74 -18
  18. data/amber/js/lib/es5-shim-2.0.2/CHANGES +93 -0
  19. data/amber/js/lib/es5-shim-2.0.2/CONTRIBUTORS.md +25 -0
  20. data/amber/js/lib/es5-shim-2.0.2/LICENSE +19 -0
  21. data/amber/js/lib/es5-shim-2.0.2/README.md +161 -0
  22. data/amber/js/lib/es5-shim-2.0.2/es5-sham.js +348 -0
  23. data/amber/js/lib/es5-shim-2.0.2/es5-sham.min.js +6 -0
  24. data/amber/js/lib/es5-shim-2.0.2/es5-shim.js +963 -0
  25. data/amber/js/lib/es5-shim-2.0.2/es5-shim.min.js +16 -0
  26. data/amber/js/lib/es5-shim-2.0.2/minify +2 -0
  27. data/amber/js/lib/es5-shim-2.0.2/package.json +31 -0
  28. data/amber/js/lib/es5-shim-2.0.2/tests/helpers/h-kill.js +59 -0
  29. data/amber/js/lib/es5-shim-2.0.2/tests/helpers/h-matchers.js +34 -0
  30. data/amber/js/lib/es5-shim-2.0.2/tests/helpers/h.js +3 -0
  31. data/amber/js/lib/es5-shim-2.0.2/tests/index.html +62 -0
  32. data/amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine-html.js +190 -0
  33. data/amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine.css +166 -0
  34. data/amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine.js +2477 -0
  35. data/amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine_favicon.png +0 -0
  36. data/amber/js/lib/es5-shim-2.0.2/tests/lib/json2.js +478 -0
  37. data/amber/js/lib/es5-shim-2.0.2/tests/spec/s-array.js +1138 -0
  38. data/amber/js/lib/es5-shim-2.0.2/tests/spec/s-date.js +117 -0
  39. data/amber/js/lib/es5-shim-2.0.2/tests/spec/s-function.js +147 -0
  40. data/amber/js/lib/es5-shim-2.0.2/tests/spec/s-object.js +84 -0
  41. data/amber/js/lib/es5-shim-2.0.2/tests/spec/s-string.js +24 -0
  42. data/amber/st/IDE.st +15 -16
  43. data/amber/st/Kernel-Classes.st +9 -9
  44. data/amber/st/Kernel-Collections.st +37 -0
  45. data/amber/st/Kernel-Methods.st +63 -8
  46. data/amber/st/Kernel-Objects.st +34 -7
  47. data/amber/st/Kernel-Tests.st +10 -0
  48. data/amber/st/SUnit.st +86 -9
  49. metadata +44 -21
  50. data/amber/js/compat.js +0 -22
@@ -1487,6 +1487,43 @@ includes: anObject
1487
1487
  ^elements includes: anObject
1488
1488
  ! !
1489
1489
 
1490
+ Object subclass: #Queue
1491
+ instanceVariableNames: 'read readIndex write'
1492
+ package: 'Kernel-Collections'!
1493
+
1494
+ !Queue methodsFor: 'accessing'!
1495
+
1496
+ back: anObject
1497
+ write add: anObject
1498
+ !
1499
+
1500
+ front
1501
+ ^self frontIfAbsent: [ self error: 'Cannot read from empty Queue.']
1502
+ !
1503
+
1504
+ frontIfAbsent: aBlock
1505
+ | result |
1506
+ result := read at: readIndex ifAbsent: [
1507
+ write isEmpty ifTrue: [
1508
+ readIndex > 1 ifTrue: [ read := #(). readIndex := 1 ].
1509
+ ^aBlock value ].
1510
+ read := write.
1511
+ readIndex := 1.
1512
+ write := OrderedCollection new.
1513
+ read first ].
1514
+ read at: readIndex put: nil.
1515
+ readIndex := readIndex + 1.
1516
+ ^result
1517
+ ! !
1518
+
1519
+ !Queue methodsFor: 'initialization'!
1520
+
1521
+ initialize
1522
+ read := #().
1523
+ readIndex := 1.
1524
+ write := OrderedCollection new
1525
+ ! !
1526
+
1490
1527
  Object subclass: #RegularExpression
1491
1528
  instanceVariableNames: ''
1492
1529
  package: 'Kernel-Collections'!
@@ -56,13 +56,7 @@ applyTo: anObject arguments: aCollection
56
56
  !
57
57
 
58
58
  ensure: aBlock
59
- | success |
60
- success := false.
61
- ^[self value. success := true. aBlock value]
62
- on: Error
63
- do: [:ex |
64
- success ifFalse: [aBlock value].
65
- ex signal]
59
+ <try{self()}finally{return aBlock._value()}>
66
60
  !
67
61
 
68
62
  new
@@ -121,6 +115,10 @@ valueWithPossibleArguments: aCollection
121
115
 
122
116
  !BlockClosure methodsFor: 'timeout/interval'!
123
117
 
118
+ fork
119
+ ForkPool default fork: self
120
+ !
121
+
124
122
  valueWithInterval: aNumber
125
123
  <return setInterval(self, aNumber)>
126
124
  !
@@ -162,7 +160,16 @@ category
162
160
  !
163
161
 
164
162
  category: aString
165
- self basicAt: 'category' put: aString
163
+ | oldCategory |
164
+ oldCategory := self category.
165
+ self basicAt: 'category' put: aString.
166
+
167
+ self methodClass ifNotNil: [
168
+ self methodClass organization addElement: aString.
169
+
170
+ (self methodClass methods
171
+ select: [ :each | each category = oldCategory ])
172
+ ifEmpty: [ self methodClass organization removeElement: oldCategory ] ]
166
173
  !
167
174
 
168
175
  fn
@@ -205,6 +212,54 @@ source: aString
205
212
  self basicAt: 'source' put: aString
206
213
  ! !
207
214
 
215
+ Object subclass: #ForkPool
216
+ instanceVariableNames: 'poolSize maxPoolSize queue worker'
217
+ package: 'Kernel-Methods'!
218
+
219
+ !ForkPool methodsFor: 'action'!
220
+
221
+ addWorker
222
+ worker valueWithTimeout: 0.
223
+ poolSize := poolSize + 1
224
+ !
225
+
226
+ fork: aBlock
227
+ poolSize < maxPoolSize ifTrue: [ self addWorker ].
228
+ queue back: aBlock
229
+ ! !
230
+
231
+ !ForkPool methodsFor: 'initialization'!
232
+
233
+ initialize
234
+ | sentinel |
235
+ poolSize := 0.
236
+ maxPoolSize := self class defaultMaxPoolSize.
237
+ queue := Queue new.
238
+ sentinel := Object new.
239
+ worker := [
240
+ | block |
241
+ poolSize := poolSize - 1.
242
+ block := queue frontIfAbsent: [ sentinel ].
243
+ block == sentinel ifFalse: [
244
+ [ block value ] ensure: [ self addWorker ]]].
245
+ ! !
246
+
247
+ ForkPool class instanceVariableNames: 'default'!
248
+
249
+ !ForkPool class methodsFor: 'accessing'!
250
+
251
+ default
252
+ ^default ifNil: [ default := self new ]
253
+ !
254
+
255
+ defaultMaxPoolSize
256
+ ^100
257
+ !
258
+
259
+ resetDefault
260
+ default := nil
261
+ ! !
262
+
208
263
  Object subclass: #Message
209
264
  instanceVariableNames: 'selector arguments'
210
265
  package: 'Kernel-Methods'!
@@ -990,6 +990,24 @@ pi
990
990
  <return Math.PI>
991
991
  ! !
992
992
 
993
+ Object subclass: #Organizer
994
+ instanceVariableNames: ''
995
+ package: 'Kernel-Objects'!
996
+
997
+ !Organizer methodsFor: 'accessing'!
998
+
999
+ addElement: anObject
1000
+ <self.addElement(anObject)>
1001
+ !
1002
+
1003
+ elements
1004
+ ^ (self basicAt: 'elements') copy
1005
+ !
1006
+
1007
+ removeElement: anObject
1008
+ <self.removeElement(anObject)>
1009
+ ! !
1010
+
993
1011
  Object subclass: #Package
994
1012
  instanceVariableNames: 'commitPathJs commitPathSt'
995
1013
  package: 'Kernel-Objects'!
@@ -1047,6 +1065,10 @@ name: aString
1047
1065
  <self.pkgName = aString>
1048
1066
  !
1049
1067
 
1068
+ organization
1069
+ ^ self basicAt: 'organization'
1070
+ !
1071
+
1050
1072
  properties
1051
1073
  ^Smalltalk current readJSObject: (self basicAt: 'properties')
1052
1074
  !
@@ -1065,8 +1087,7 @@ properties: aDict
1065
1087
  !Package methodsFor: 'classes'!
1066
1088
 
1067
1089
  classes
1068
- "We need to do a reverse scan."
1069
- ^Smalltalk current classes select: [:c | c package == self]
1090
+ ^ self organization elements
1070
1091
  !
1071
1092
 
1072
1093
  sortedClasses
@@ -1373,10 +1394,6 @@ basicParse: aString
1373
1394
  <return smalltalk.parser.parse(aString)>
1374
1395
  !
1375
1396
 
1376
- classes
1377
- <return self.classes()>
1378
- !
1379
-
1380
1397
  parse: aString
1381
1398
  | result |
1382
1399
  self try: [result := self basicParse: aString] catch: [:ex | (self parseError: ex parsing: aString) signal].
@@ -1415,6 +1432,10 @@ send: aSelector to: anObject arguments: aCollection
1415
1432
 
1416
1433
  !Smalltalk methodsFor: 'classes'!
1417
1434
 
1435
+ classes
1436
+ <return self.classes()>
1437
+ !
1438
+
1418
1439
  removeClass: aClass
1419
1440
  aClass isMetaclass ifTrue: [self error: aClass asString, ' is a Metaclass and cannot be removed!!'].
1420
1441
 
@@ -1424,7 +1445,7 @@ removeClass: aClass
1424
1445
  aClass class methodDictionary values do: [:each |
1425
1446
  aClass class removeCompiledMethod: each].
1426
1447
 
1427
- self basicDelete: aClass name.
1448
+ self deleteClass: aClass.
1428
1449
 
1429
1450
  SystemAnnouncer current
1430
1451
  announce: (ClassRemoved new
@@ -1492,6 +1513,12 @@ createPackage: packageName properties: aDict
1492
1513
  <return smalltalk.addPackage(packageName, object)>
1493
1514
  !
1494
1515
 
1516
+ deleteClass: aClass
1517
+ "Deletes a class by deleting its binding only. Use #removeClass instead"
1518
+
1519
+ <self.removeClass(aClass)>
1520
+ !
1521
+
1495
1522
  deletePackage: packageName
1496
1523
  "Deletes a package by deleting its binding, but does not check if it contains classes etc.
1497
1524
  To remove a package, use #removePackage instead."
@@ -13,6 +13,10 @@ testEnsure
13
13
  self assert: ([Error new] ensure: [true])
14
14
  !
15
15
 
16
+ testEnsureRaises
17
+ self should: [[Error new signal] ensure: [true]] raise: Error
18
+ !
19
+
16
20
  testNumArgs
17
21
  self assert: [] numArgs equals: 0.
18
22
  self assert: [:a :b | ] numArgs equals: 2
@@ -150,6 +154,12 @@ testLogicKeywords
150
154
  assert: (false or: [ 1 > 0 ]);
151
155
  assert: ((1 > 0) or: [ false ]);
152
156
  assert: ((1 > 0) or: [ 1 > 2 ])
157
+ !
158
+
159
+ testNonBooleanError
160
+ |b|
161
+ b := < '' >.
162
+ self should: [nonBoolean ifTrue: [] ifFalse: []] raise: NonBooleanReceiver
153
163
  ! !
154
164
 
155
165
  TestCase subclass: #ClassBuilderTest
@@ -1,4 +1,18 @@
1
1
  Smalltalk current createPackage: 'SUnit' properties: #{}!
2
+ Object subclass: #ResultAnnouncement
3
+ instanceVariableNames: 'result'
4
+ package: 'SUnit'!
5
+
6
+ !ResultAnnouncement methodsFor: 'accessing'!
7
+
8
+ result
9
+ ^result
10
+ !
11
+
12
+ result: aTestResult
13
+ result := aTestResult
14
+ ! !
15
+
2
16
  Object subclass: #TestCase
3
17
  instanceVariableNames: 'testSelector'
4
18
  package: 'SUnit'!
@@ -23,17 +37,15 @@ signalFailure: aString
23
37
 
24
38
  !TestCase methodsFor: 'running'!
25
39
 
26
- performTestFor: aResult
27
- [[self perform: self selector]
28
- on: TestFailure do: [:ex | aResult addFailure: self]]
29
- on: Error do: [:ex | aResult addError: self]
40
+ performTest
41
+ self perform: self selector
30
42
  !
31
43
 
32
- runCaseFor: aTestResult
33
- self setUp.
34
- aTestResult increaseRuns.
35
- self performTestFor: aTestResult.
36
- self tearDown
44
+ runCase
45
+ [ self setUp.
46
+ self performTest ] ensure: [
47
+ self tearDown.
48
+ "self cleanUpInstanceVariables" ]
37
49
  !
38
50
 
39
51
  setUp
@@ -180,3 +192,68 @@ initialize
180
192
  total := 0
181
193
  ! !
182
194
 
195
+ !TestResult methodsFor: 'running'!
196
+
197
+ nextRunDo: aBlock
198
+ "Runs aBlock with index of next run
199
+ or does nothing if no more runs"
200
+ ^self runs == self total
201
+ ifFalse: [ aBlock value: self runs + 1 ]
202
+ !
203
+
204
+ runCase: aTestCase
205
+ [[ self increaseRuns.
206
+ aTestCase runCase]
207
+ on: TestFailure do: [:ex | self addFailure: aTestCase]]
208
+ on: Error do: [:ex | self addError: aTestCase]
209
+ ! !
210
+
211
+ Object subclass: #TestSuiteRunner
212
+ instanceVariableNames: 'suite result announcer'
213
+ package: 'SUnit'!
214
+
215
+ !TestSuiteRunner methodsFor: 'accessing'!
216
+
217
+ announcer
218
+ ^announcer
219
+ !
220
+
221
+ result
222
+ ^result
223
+ !
224
+
225
+ suite: aCollection
226
+ suite := aCollection
227
+ ! !
228
+
229
+ !TestSuiteRunner methodsFor: 'actions'!
230
+
231
+ run
232
+ | worker |
233
+ result total: suite size.
234
+ announcer announce: (ResultAnnouncement new result: result).
235
+ worker := [ result nextRunDo: [ :index |
236
+ [ result runCase: (suite at: index) ]
237
+ ensure: [ worker fork.
238
+ announcer announce: (ResultAnnouncement new result: result) ]]].
239
+ worker fork
240
+ ! !
241
+
242
+ !TestSuiteRunner methodsFor: 'initialization'!
243
+
244
+ initialize
245
+ super initialize.
246
+ announcer := Announcer new.
247
+ result := TestResult new
248
+ ! !
249
+
250
+ !TestSuiteRunner class methodsFor: 'instance creation'!
251
+
252
+ new
253
+ self shouldNotImplement
254
+ !
255
+
256
+ on: aCollection
257
+ ^super new suite: aCollection
258
+ ! !
259
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-01 00:00:00.000000000 Z
12
+ date: 2012-12-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &5027820 !ruby/object:Gem::Requirement
16
+ requirement: &10777680 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *5027820
24
+ version_requirements: *10777680
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &5027080 !ruby/object:Gem::Requirement
27
+ requirement: &10776980 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *5027080
35
+ version_requirements: *10776980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shotgun
38
- requirement: &5026260 !ruby/object:Gem::Requirement
38
+ requirement: &10776180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *5026260
46
+ version_requirements: *10776180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &5025480 !ruby/object:Gem::Requirement
49
+ requirement: &10775220 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *5025480
57
+ version_requirements: *10775220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack-test
60
- requirement: &5024440 !ruby/object:Gem::Requirement
60
+ requirement: &10774040 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *5024440
68
+ version_requirements: *10774040
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: haml
71
- requirement: &5023260 !ruby/object:Gem::Requirement
71
+ requirement: &10789120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *5023260
79
+ version_requirements: *10789120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sinatra
82
- requirement: &5038320 !ruby/object:Gem::Requirement
82
+ requirement: &10787700 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *5038320
90
+ version_requirements: *10787700
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: json
93
- requirement: &5036780 !ruby/object:Gem::Requirement
93
+ requirement: &10786400 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *5036780
101
+ version_requirements: *10786400
102
102
  description:
103
103
  email: tyler@linux.com
104
104
  executables:
@@ -140,6 +140,30 @@ files:
140
140
  - amber/js/lib/bootstrap/js/bootstrap.min.js
141
141
  - amber/js/lib/bootstrap/js/bootstrap.js
142
142
  - amber/js/lib/showdown.js
143
+ - amber/js/lib/es5-shim-2.0.2/es5-sham.js
144
+ - amber/js/lib/es5-shim-2.0.2/es5-shim.min.js
145
+ - amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine.css
146
+ - amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine-html.js
147
+ - amber/js/lib/es5-shim-2.0.2/tests/lib/json2.js
148
+ - amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine.js
149
+ - amber/js/lib/es5-shim-2.0.2/tests/lib/jasmine_favicon.png
150
+ - amber/js/lib/es5-shim-2.0.2/tests/helpers/h-matchers.js
151
+ - amber/js/lib/es5-shim-2.0.2/tests/helpers/h.js
152
+ - amber/js/lib/es5-shim-2.0.2/tests/helpers/h-kill.js
153
+ - amber/js/lib/es5-shim-2.0.2/tests/index.html
154
+ - amber/js/lib/es5-shim-2.0.2/tests/spec/s-string.js
155
+ - amber/js/lib/es5-shim-2.0.2/tests/spec/s-function.js
156
+ - amber/js/lib/es5-shim-2.0.2/tests/spec/s-date.js
157
+ - amber/js/lib/es5-shim-2.0.2/tests/spec/s-object.js
158
+ - amber/js/lib/es5-shim-2.0.2/tests/spec/s-array.js
159
+ - amber/js/lib/es5-shim-2.0.2/es5-shim.js
160
+ - amber/js/lib/es5-shim-2.0.2/CHANGES
161
+ - amber/js/lib/es5-shim-2.0.2/es5-sham.min.js
162
+ - amber/js/lib/es5-shim-2.0.2/minify
163
+ - amber/js/lib/es5-shim-2.0.2/package.json
164
+ - amber/js/lib/es5-shim-2.0.2/CONTRIBUTORS.md
165
+ - amber/js/lib/es5-shim-2.0.2/README.md
166
+ - amber/js/lib/es5-shim-2.0.2/LICENSE
143
167
  - amber/js/lib/peg-0.6.2.min.js
144
168
  - amber/js/lib/CodeMirror/smalltalk.js
145
169
  - amber/js/lib/CodeMirror/codemirror.css
@@ -206,7 +230,6 @@ files:
206
230
  - amber/js/Compiler-AST.deploy.js
207
231
  - amber/js/Compiler-Tests.js
208
232
  - amber/js/Examples.deploy.js
209
- - amber/js/compat.js
210
233
  - amber/js/Documentation.deploy.js
211
234
  - amber/js/Kernel-Exceptions.js
212
235
  - amber/js/Kernel-Exceptions.deploy.js
@@ -280,7 +303,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
303
  version: '0'
281
304
  segments:
282
305
  - 0
283
- hash: -3056217880712448120
306
+ hash: -4232258665751550036
284
307
  required_rubygems_version: !ruby/object:Gem::Requirement
285
308
  none: false
286
309
  requirements:
@@ -289,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
312
  version: '0'
290
313
  segments:
291
314
  - 0
292
- hash: -3056217880712448120
315
+ hash: -4232258665751550036
293
316
  requirements: []
294
317
  rubyforge_project:
295
318
  rubygems_version: 1.8.10