inversion 0.5.0 → 0.6.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.
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,8 +1,53 @@
1
+ 2012-03-13 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * History.rdoc, lib/inversion.rb:
4
+ Bump the minor version, update History.
5
+ [2397134edcb3] [tip]
6
+
7
+ * lib/inversion/template/fortag.rb, manual/src/tags.page,
8
+ spec/inversion/template/fortag_spec.rb:
9
+ Fix a bug with "for" tag iteration over complex data structures
10
+ [6aa4c3301803]
11
+
12
+ 2012-03-12 Michael Granger <ged@FaerieMUD.org>
13
+
14
+ * .rvm.gems, .rvmrc:
15
+ Update .rvm files
16
+ [6fb2d6971357] [github/master]
17
+
18
+ 2012-03-05 Mahlon E. Smith <mahlon@martini.nu>
19
+
20
+ * lib/inversion/template.rb, spec/inversion/template_spec.rb:
21
+ Err, no. Lets try that again. 10,000 monkeys pounding away at
22
+ keyboards are responsible. Or maybe just one.
23
+ [7c42e6b20c11]
24
+
25
+ * lib/inversion/template.rb, manual/src/templates.page,
26
+ spec/inversion/template_spec.rb:
27
+ Add a configurable delay for stat() on file-based templates, if your
28
+ application is auto reloading changes and you're worried about the
29
+ I/O piling up. "template.reload if template.changed?" -- zesty.
30
+ [51e63e419025]
31
+
32
+ 2012-02-17 Mahlon E. Smith <mahlon@martini.nu>
33
+
34
+ * .rvmrc, lib/inversion/template.rb, spec/inversion/template_spec.rb:
35
+ Carry options that are set in the global configuration across to the
36
+ parser.
37
+ [3dd947d8e4d9]
38
+
39
+ 2012-02-10 Mahlon E. Smith <mahlon@martini.nu>
40
+
41
+ * .rvm.gems, Rakefile, lib/inversion/template.rb:
42
+ Guard against nil for Inversion::Template config when merging. Bump
43
+ rspec version, add rdoc/rspec to the RVM gemlist file.
44
+ [e9ef24491f97]
45
+
1
46
  2012-01-05 Michael Granger <ged@FaerieMUD.org>
2
47
 
3
48
  * .hgtags:
4
49
  Added tag v0.5.0 for changeset 0f4e4aa78d9c
5
- [cc3f12489745] [tip]
50
+ [cc3f12489745]
6
51
 
7
52
  * .hgsigs:
8
53
  Added signature for changeset 11fb6ed08994
data/History.rdoc CHANGED
@@ -1,3 +1,13 @@
1
+ == v0.6.0 [2012-03-13] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ - Fix a bug with "for" tag iteration over complex data structures
4
+ - Add a configurable delay for checking for changes on file-based
5
+ templates to avoid a stat() per request.
6
+ - Carry options that are set in the global configuration across to the
7
+ parser.
8
+ - Handle Configurability's configure-with-defaults call.
9
+
10
+
1
11
  == v0.5.0 [2012-01-05] Michael Granger <ged@FaerieMUD.org>
2
12
 
3
13
  Added an encoding option to Inversion::Template.load for
data/Rakefile CHANGED
@@ -20,8 +20,9 @@ hoespec = Hoe.spec 'inversion' do
20
20
  self.developer 'Michael Granger', 'ged@FaerieMUD.org'
21
21
  self.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
22
22
 
23
- self.dependency 'ripper', '~> 1.0', :development unless defined?( Encoding )
24
- self.dependency 'rspec', '~> 2.6', :development
23
+ self.dependency 'ripper', '~> 1.0', :development unless defined?( Encoding )
24
+ self.dependency 'rdoc', '~> 3.12', :development
25
+ self.dependency 'rspec', '~> 2.8', :development
25
26
  self.dependency 'tilt', '~> 1.3', :development
26
27
  self.dependency 'sinatra', '~> 1.2', :development
27
28
  self.dependency 'rack-test', '~> 0.6', :development
data/lib/inversion.rb CHANGED
@@ -26,10 +26,10 @@ module Inversion
26
26
  require 'inversion/monkeypatches'
27
27
 
28
28
  # Library version constant
29
- VERSION = '0.5.0'
29
+ VERSION = '0.6.0'
30
30
 
31
31
  # Version-control revision constant
32
- REVISION = %q$Revision: 11fb6ed08994 $
32
+ REVISION = %q$Revision: 2397134edcb3 $
33
33
 
34
34
  #
35
35
  # Logging
@@ -52,6 +52,7 @@ class Inversion::Template
52
52
  :template_paths => [],
53
53
  :escape_format => :html,
54
54
  :strip_tag_lines => true,
55
+ :stat_delay => 0
55
56
  }
56
57
 
57
58
 
@@ -62,6 +63,7 @@ class Inversion::Template
62
63
 
63
64
  ### Configure the templating system.
64
65
  def self::configure( config )
66
+ return unless config
65
67
  Inversion.log.debug "Merging config %p with current config %p" % [ config, self.config ]
66
68
  self.config = self.config.merge( config )
67
69
  end
@@ -122,6 +124,9 @@ class Inversion::Template
122
124
  self.log.debug "Parse state is: %p" % [ parsestate ]
123
125
  end
124
126
 
127
+ # carry global template options to the parser.
128
+ opts = self.class.config.merge( opts )
129
+
125
130
  @source = source
126
131
  @parser = Inversion::Parser.new( self, opts )
127
132
  @node_tree = [] # Parser expects this to always be an Array
@@ -130,6 +135,7 @@ class Inversion::Template
130
135
  @attributes = {}
131
136
  @source_file = nil
132
137
  @created_at = Time.now
138
+ @last_checked = @created_at
133
139
 
134
140
  self.parse( source, parsestate )
135
141
  end
@@ -158,7 +164,7 @@ class Inversion::Template
158
164
  ### If the template was loaded from a file, reload and reparse it from the same file.
159
165
  def reload
160
166
  file = self.source_file or
161
- raise Inversion::Error, "template was not loaded from a file"
167
+ raise Inversion::Error, "template was not loaded from a file"
162
168
 
163
169
  self.log.debug "Reloading from %s" % [ file ]
164
170
  source = file.read
@@ -170,7 +176,15 @@ class Inversion::Template
170
176
  ### is after the time the template was created.
171
177
  def changed?
172
178
  return false unless file = self.source_file
173
- return ( file.mtime > @created_at )
179
+ now = Time.now
180
+
181
+ if now > ( @last_checked + self.options[ :stat_delay ].to_i )
182
+ if file.mtime > @last_checked
183
+ @last_checked = now
184
+ return true
185
+ end
186
+ end
187
+ return false
174
188
  end
175
189
 
176
190
 
@@ -83,10 +83,15 @@ class Inversion::Template::ForTag < Inversion::Template::CodeTag
83
83
  ### contents for each iteration.
84
84
  def render( state )
85
85
  lvalue = state.eval( self.enumerator ) or return nil
86
+ lvalue = lvalue.each unless lvalue.respond_to?( :next )
86
87
 
87
88
  self.log.debug "Rendering %p via block args: %p" % [ lvalue, self.block_args ]
88
89
 
89
- lvalue.each do |*args|
90
+ # Loop will exit as soon as the Enumerator runs out of elements
91
+ loop do
92
+ args = Array( lvalue.next )
93
+ self.log.debug " iterated block args are: %p" % [ args ]
94
+
90
95
  # Turn the block arguments into an overrides hash by zipping up
91
96
  # the arguments names and values
92
97
  overrides = Hash[ self.block_args.zip(args) ]
@@ -11,6 +11,7 @@ BEGIN {
11
11
  }
12
12
 
13
13
  require 'rspec'
14
+ require 'ostruct'
14
15
  require 'spec/lib/helpers'
15
16
  require 'inversion/template/fortag'
16
17
  require 'inversion/template/attrtag'
@@ -90,6 +91,19 @@ describe Inversion::Template::ForTag do
90
91
  render_state.to_s.should == "[x, o][x, x][o, o][o, x]"
91
92
  end
92
93
 
94
+ it "supports iterating over a range" do
95
+
96
+ # <?for omarker in tic ?><?for imarker in tac ?>
97
+ tag = Inversion::Template::ForTag.new( 'i in rng' )
98
+
99
+ tag << Inversion::Template::AttrTag.new( 'i' )
100
+ tag << Inversion::Template::TextNode.new( ' ' )
101
+
102
+ render_state = Inversion::RenderState.new( :rng => 0..10 )
103
+ tag.render( render_state )
104
+ render_state.to_s.should == "0 1 2 3 4 5 6 7 8 9 10 "
105
+ end
106
+
93
107
  it "raises a ParseError if a keyword other than 'in' is used" do
94
108
  expect {
95
109
  Inversion::Template::ForTag.new( 'foo begin bar' )
@@ -112,6 +126,124 @@ describe Inversion::Template::ForTag do
112
126
  tag.block_args.should == [ :splip, :splorp, :sploop ]
113
127
  tag.enumerator.should == 'splap'
114
128
  end
129
+
130
+ it "can be expanded into multiple block arguments from hash pairs" do
131
+ tag = Inversion::Template::ForTag.new( 'key, value in splap' )
132
+
133
+ # [<?attr key?> translates to <?attr value?>]
134
+ tag << Inversion::Template::TextNode.new( '[' )
135
+ tag << Inversion::Template::AttrTag.new( 'key' )
136
+ tag << Inversion::Template::TextNode.new( ' translates to ' )
137
+ tag << Inversion::Template::AttrTag.new( 'value' )
138
+ tag << Inversion::Template::TextNode.new( ']' )
139
+
140
+ tag.block_args.should == [ :key, :value ]
141
+ tag.enumerator.should == 'splap'
142
+
143
+ render_state = Inversion::RenderState.new( :splap => {'one' => 'uno', 'two' => 'dos'} )
144
+ tag.render( render_state )
145
+
146
+ render_state.to_s.should == '[one translates to uno][two translates to dos]'
147
+ end
148
+
149
+ it "can be expanded into multiple block arguments with complex values" do
150
+ # [<?attr key?> translates to <?attr value?>]
151
+ tree = Inversion::Parser.new( nil ).parse( <<-"END_TEMPLATE" )
152
+ <?for scope, visibilities in method_list ?>
153
+ <?call scope.first ?> (<?call scope.length ?>) => <?call visibilities[:name] ?>
154
+ <?if visibilities[:variants] ?>AKA: <?call scope[1..-1].join(', ') ?><?end if ?>
155
+ <?end for ?>
156
+ END_TEMPLATE
157
+
158
+ # Drop the non-container nodes at the beginning and end
159
+ tree.delete_if {|node| !node.container? }
160
+
161
+ method_list = {
162
+ [:foo, :foom, :foom_detail] => { :name => 'foo', :variants => true },
163
+ [:ch] => { :name => 'ch', :variants => false },
164
+ }
165
+
166
+ render_state = Inversion::RenderState.new( :method_list => method_list )
167
+ tree.first.render( render_state )
168
+
169
+ render_state.to_s.should =~ /foo \(3\) => foo\s+AKA: foom, foom_detail/
170
+ render_state.to_s.should =~ /ch \(1\) => ch/
171
+ end
172
+
173
+ end
174
+
175
+
176
+ context "manual examples" do
177
+
178
+ it "renders the hexdump example as expected" do
179
+ tmpl = Inversion::Template.new( <<-END_TEMPLATE )
180
+ <section class="hexdump">
181
+ <?for byte, index in frame.header.each_byte.with_index ?>
182
+ <?if index.modulo(8).zero? ?>
183
+ <?if index.nonzero? ?>
184
+ </span><br />
185
+ <?end if ?>
186
+ <span class="row"><?attr "0x%08x" % index ?>:
187
+ <?end if ?>
188
+ &nbsp;<code><?attr "0x%02x" % byte ?></code>
189
+ <?end for ?>
190
+ </span>
191
+ </section>
192
+ END_TEMPLATE
193
+
194
+ frame = OpenStruct.new
195
+ frame.header = [
196
+ 0x89, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x82,
197
+ 0x7E, 0x01, 0x00, 0x8a, 0x05, 0x48, 0x65, 0x6c,
198
+ 0x6c, 0x6f, 0x82, 0x7F, 0x00, 0x00, 0x00, 0x00,
199
+ 0x00, 0x01, 0x00, 0x00, 0x13
200
+ ].pack( 'C*' )
201
+
202
+ tmpl.frame = frame
203
+ output = tmpl.render
204
+
205
+ output.gsub( /\t+/, '' ).should == (<<-END_OUTPUT).gsub( /\t+/, '' )
206
+ <section class="hexdump">
207
+ <span class="row">0x00000000:
208
+ &nbsp;<code>0x89</code>
209
+ &nbsp;<code>0x05</code>
210
+ &nbsp;<code>0x48</code>
211
+ &nbsp;<code>0x65</code>
212
+ &nbsp;<code>0x6c</code>
213
+ &nbsp;<code>0x6c</code>
214
+ &nbsp;<code>0x6f</code>
215
+ &nbsp;<code>0x82</code>
216
+ </span><br />
217
+ <span class="row">0x00000008:
218
+ &nbsp;<code>0x7e</code>
219
+ &nbsp;<code>0x01</code>
220
+ &nbsp;<code>0x00</code>
221
+ &nbsp;<code>0x8a</code>
222
+ &nbsp;<code>0x05</code>
223
+ &nbsp;<code>0x48</code>
224
+ &nbsp;<code>0x65</code>
225
+ &nbsp;<code>0x6c</code>
226
+ </span><br />
227
+ <span class="row">0x00000010:
228
+ &nbsp;<code>0x6c</code>
229
+ &nbsp;<code>0x6f</code>
230
+ &nbsp;<code>0x82</code>
231
+ &nbsp;<code>0x7f</code>
232
+ &nbsp;<code>0x00</code>
233
+ &nbsp;<code>0x00</code>
234
+ &nbsp;<code>0x00</code>
235
+ &nbsp;<code>0x00</code>
236
+ </span><br />
237
+ <span class="row">0x00000018:
238
+ &nbsp;<code>0x00</code>
239
+ &nbsp;<code>0x01</code>
240
+ &nbsp;<code>0x00</code>
241
+ &nbsp;<code>0x00</code>
242
+ &nbsp;<code>0x13</code>
243
+ </span>
244
+ </section>
245
+ END_OUTPUT
246
+ end
115
247
  end
116
248
  end
117
249
 
@@ -61,6 +61,13 @@ describe Inversion::Template do
61
61
  tmpl.render( &renderblock )
62
62
  end
63
63
 
64
+ it "carries its global configuration to the parser" do
65
+ Inversion::Template.configure( :i_exist => true )
66
+ tmpl = Inversion::Template.new( '' )
67
+ parser = tmpl.instance_variable_get( :@parser )
68
+ parser.options.should have_key( :i_exist )
69
+ end
70
+
64
71
  it "can make an human-readable string version of itself suitable for debugging" do
65
72
  IO.should_receive( :read ).with( '/tmp/inspect.tmpl' ).and_return( '<?attr foo ?>' )
66
73
  tmpl = Inversion::Template.load( '/tmp/inspect.tmpl' )
@@ -115,6 +122,24 @@ describe Inversion::Template do
115
122
  it "knows that it hasn't changed" do
116
123
  @template.should_not be_changed()
117
124
  end
125
+
126
+ context "with a stat delay" do
127
+
128
+ before( :each ) do
129
+ @template.options[ :stat_delay ] = 30
130
+ end
131
+
132
+ it "returns unchanged if the delay time hasn't expired" do
133
+ @template.instance_variable_set( :@last_checked, @timestamp )
134
+ @template.should_not be_changed()
135
+ end
136
+
137
+ it "returns unchanged if the delay time has expired" do
138
+ @template.source_file.stub!( :mtime ).and_return( @timestamp - 30 )
139
+ @template.instance_variable_set( :@last_checked, @timestamp - 30 )
140
+ @template.should_not be_changed()
141
+ end
142
+ end
118
143
  end
119
144
 
120
145
  context "that has changed since it was loaded" do
@@ -127,8 +152,23 @@ describe Inversion::Template do
127
152
  @template.should be_changed()
128
153
  end
129
154
 
130
- end
155
+ context "with a stat delay" do
156
+
157
+ before( :each ) do
158
+ @template.options[ :stat_delay ] = 30
159
+ end
131
160
 
161
+ it "returns unchanged if the delay time hasn't expired" do
162
+ @template.instance_variable_set( :@last_checked, @timestamp )
163
+ @template.should_not be_changed()
164
+ end
165
+
166
+ it "returns changed if the delay time has expired" do
167
+ @template.instance_variable_set( :@last_checked, @timestamp - 60 )
168
+ @template.should be_changed()
169
+ end
170
+ end
171
+ end
132
172
  end
133
173
 
134
174
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inversion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,50 +10,38 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain:
13
- - ! '-----BEGIN CERTIFICATE-----
14
-
15
- MIIDLDCCAhSgAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQwwCgYDVQQDDANnZWQx
16
-
17
- FzAVBgoJkiaJk/IsZAEZFgdfYWVyaWVfMRMwEQYKCZImiZPyLGQBGRYDb3JnMB4X
18
-
19
- DTEwMDkxNjE0NDg1MVoXDTExMDkxNjE0NDg1MVowPDEMMAoGA1UEAwwDZ2VkMRcw
20
-
21
- FQYKCZImiZPyLGQBGRYHX2FlcmllXzETMBEGCgmSJomT8ixkARkWA29yZzCCASIw
22
-
23
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALy//BFxC1f/cPSnwtJBWoFiFrir
24
-
25
- h7RicI+joq/ocVXQqI4TDWPyF/8tqkvt+rD99X9qs2YeR8CU/YiIpLWrQOYST70J
26
-
27
- vDn7Uvhb2muFVqq6+vobeTkILBEO6pionWDG8jSbo3qKm1RjKJDwg9p4wNKhPuu8
28
-
29
- KGue/BFb67KflqyApPmPeb3Vdd9clspzqeFqp7cUBMEpFS6LWxy4Gk+qvFFJBJLB
30
-
31
- BUHE/LZVJMVzfpC5Uq+QmY7B+FH/QqNndn3tOHgsPadLTNimuB1sCuL1a4z3Pepd
32
-
33
- TeLBEFmEao5Dk3K/Q8o8vlbIB/jBDTUx6Djbgxw77909x6gI9doU4LD5XMcCAwEA
34
-
35
- AaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJeoGkOr9l4B
36
-
37
- +saMkW/ZXT4UeSvVMA0GCSqGSIb3DQEBBQUAA4IBAQBG2KObvYI2eHyyBUJSJ3jN
38
-
39
- vEnU3d60znAXbrSd2qb3r1lY1EPDD3bcy0MggCfGdg3Xu54z21oqyIdk8uGtWBPL
40
-
41
- HIa9EgfFGSUEgvcIvaYqiN4jTUtidfEFw+Ltjs8AP9gWgSIYS6Gr38V0WGFFNzIH
42
-
43
- aOD2wmu9oo/RffW4hS/8GuvfMzcw7CQ355wFR4KB/nyze+EsZ1Y5DerCAagMVuDQ
44
-
45
- U0BLmWDFzPGGWlPeQCrYHCr+AcJz+NRnaHCKLZdSKj/RHuTOt+gblRex8FAh8NeA
46
-
47
- cmlhXe46pZNJgWKbxZah85jIjx95hR8vOI+NAM5iH9kOqK13DrxacTKPhqj5PjwF
48
-
49
- -----END CERTIFICATE-----
50
-
51
- '
52
- date: 2012-01-05 00:00:00.000000000 Z
13
+ - !binary |-
14
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMRENDQWhTZ0F3SUJB
15
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE4TVF3d0NnWURWUVFEREFOblpX
16
+ UXgKRnpBVkJnb0praWFKay9Jc1pBRVpGZ2RmWVdWeWFXVmZNUk13RVFZS0Na
17
+ SW1pWlB5TEdRQkdSWURiM0puTUI0WApEVEV3TURreE5qRTBORGcxTVZvWERU
18
+ RXhNRGt4TmpFME5EZzFNVm93UERFTU1Bb0dBMVVFQXd3RFoyVmtNUmN3CkZR
19
+ WUtDWkltaVpQeUxHUUJHUllIWDJGbGNtbGxYekVUTUJFR0NnbVNKb21UOGl4
20
+ a0FSa1dBMjl5WnpDQ0FTSXcKRFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURD
21
+ Q0FRb0NnZ0VCQUx5Ly9CRnhDMWYvY1BTbnd0SkJXb0ZpRnJpcgpoN1JpY0kr
22
+ am9xL29jVlhRcUk0VERXUHlGLzh0cWt2dCtyRDk5WDlxczJZZVI4Q1UvWWlJ
23
+ cExXclFPWVNUNzBKCnZEbjdVdmhiMm11RlZxcTYrdm9iZVRrSUxCRU82cGlv
24
+ bldERzhqU2JvM3FLbTFSaktKRHdnOXA0d05LaFB1dTgKS0d1ZS9CRmI2N0tm
25
+ bHF5QXBQbVBlYjNWZGQ5Y2xzcHpxZUZxcDdjVUJNRXBGUzZMV3h5NEdrK3F2
26
+ RkZKQkpMQgpCVUhFL0xaVkpNVnpmcEM1VXErUW1ZN0IrRkgvUXFObmRuM3RP
27
+ SGdzUGFkTFROaW11QjFzQ3VMMWE0ejNQZXBkClRlTEJFRm1FYW81RGszSy9R
28
+ OG84dmxiSUIvakJEVFV4NkRqYmd4dzc3OTA5eDZnSTlkb1U0TEQ1WE1jQ0F3
29
+ RUEKQWFNNU1EY3dDUVlEVlIwVEJBSXdBREFMQmdOVkhROEVCQU1DQkxBd0hR
30
+ WURWUjBPQkJZRUZKZW9Ha09yOWw0Qgorc2FNa1cvWlhUNFVlU3ZWTUEwR0NT
31
+ cUdTSWIzRFFFQkJRVUFBNElCQVFCRzJLT2J2WUkyZUh5eUJVSlNKM2pOCnZF
32
+ blUzZDYwem5BWGJyU2QycWIzcjFsWTFFUEREM2JjeTBNZ2dDZkdkZzNYdTU0
33
+ ejIxb3F5SWRrOHVHdFdCUEwKSElhOUVnZkZHU1VFZ3ZjSXZhWXFpTjRqVFV0
34
+ aWRmRUZ3K0x0anM4QVA5Z1dnU0lZUzZHcjM4VjBXR0ZGTnpJSAphT0Qyd211
35
+ OW9vL1JmZlc0aFMvOEd1dmZNemN3N0NRMzU1d0ZSNEtCL255emUrRXNaMVk1
36
+ RGVyQ0FhZ01WdURRClUwQkxtV0RGelBHR1dsUGVRQ3JZSENyK0FjSnorTlJu
37
+ YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
38
+ Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
39
+ cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
40
+ date: 2012-03-14 00:00:00.000000000 Z
53
41
  dependencies:
54
42
  - !ruby/object:Gem::Dependency
55
43
  name: hoe-mercurial
56
- requirement: &70112213964960 !ruby/object:Gem::Requirement
44
+ requirement: &70276480362560 !ruby/object:Gem::Requirement
57
45
  none: false
58
46
  requirements:
59
47
  - - ~>
@@ -61,10 +49,10 @@ dependencies:
61
49
  version: 1.3.1
62
50
  type: :development
63
51
  prerelease: false
64
- version_requirements: *70112213964960
52
+ version_requirements: *70276480362560
65
53
  - !ruby/object:Gem::Dependency
66
54
  name: hoe-manualgen
67
- requirement: &70112213964400 !ruby/object:Gem::Requirement
55
+ requirement: &70276480378460 !ruby/object:Gem::Requirement
68
56
  none: false
69
57
  requirements:
70
58
  - - ~>
@@ -72,10 +60,10 @@ dependencies:
72
60
  version: 0.2.0
73
61
  type: :development
74
62
  prerelease: false
75
- version_requirements: *70112213964400
63
+ version_requirements: *70276480378460
76
64
  - !ruby/object:Gem::Dependency
77
65
  name: hoe-highline
78
- requirement: &70112213963860 !ruby/object:Gem::Requirement
66
+ requirement: &70276480377960 !ruby/object:Gem::Requirement
79
67
  none: false
80
68
  requirements:
81
69
  - - ~>
@@ -83,21 +71,32 @@ dependencies:
83
71
  version: 0.0.1
84
72
  type: :development
85
73
  prerelease: false
86
- version_requirements: *70112213963860
74
+ version_requirements: *70276480377960
75
+ - !ruby/object:Gem::Dependency
76
+ name: rdoc
77
+ requirement: &70276480377180 !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '3.12'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: *70276480377180
87
86
  - !ruby/object:Gem::Dependency
88
87
  name: rspec
89
- requirement: &70112213961800 !ruby/object:Gem::Requirement
88
+ requirement: &70276480376360 !ruby/object:Gem::Requirement
90
89
  none: false
91
90
  requirements:
92
91
  - - ~>
93
92
  - !ruby/object:Gem::Version
94
- version: '2.6'
93
+ version: '2.8'
95
94
  type: :development
96
95
  prerelease: false
97
- version_requirements: *70112213961800
96
+ version_requirements: *70276480376360
98
97
  - !ruby/object:Gem::Dependency
99
98
  name: tilt
100
- requirement: &70112213960480 !ruby/object:Gem::Requirement
99
+ requirement: &70276480375580 !ruby/object:Gem::Requirement
101
100
  none: false
102
101
  requirements:
103
102
  - - ~>
@@ -105,10 +104,10 @@ dependencies:
105
104
  version: '1.3'
106
105
  type: :development
107
106
  prerelease: false
108
- version_requirements: *70112213960480
107
+ version_requirements: *70276480375580
109
108
  - !ruby/object:Gem::Dependency
110
109
  name: sinatra
111
- requirement: &70112213959200 !ruby/object:Gem::Requirement
110
+ requirement: &70276480374200 !ruby/object:Gem::Requirement
112
111
  none: false
113
112
  requirements:
114
113
  - - ~>
@@ -116,10 +115,10 @@ dependencies:
116
115
  version: '1.2'
117
116
  type: :development
118
117
  prerelease: false
119
- version_requirements: *70112213959200
118
+ version_requirements: *70276480374200
120
119
  - !ruby/object:Gem::Dependency
121
120
  name: rack-test
122
- requirement: &70112213974620 !ruby/object:Gem::Requirement
121
+ requirement: &70276480373760 !ruby/object:Gem::Requirement
123
122
  none: false
124
123
  requirements:
125
124
  - - ~>
@@ -127,10 +126,10 @@ dependencies:
127
126
  version: '0.6'
128
127
  type: :development
129
128
  prerelease: false
130
- version_requirements: *70112213974620
129
+ version_requirements: *70276480373760
131
130
  - !ruby/object:Gem::Dependency
132
131
  name: simplecov
133
- requirement: &70112213973840 !ruby/object:Gem::Requirement
132
+ requirement: &70276480372880 !ruby/object:Gem::Requirement
134
133
  none: false
135
134
  requirements:
136
135
  - - ~>
@@ -138,10 +137,10 @@ dependencies:
138
137
  version: '0.4'
139
138
  type: :development
140
139
  prerelease: false
141
- version_requirements: *70112213973840
140
+ version_requirements: *70276480372880
142
141
  - !ruby/object:Gem::Dependency
143
142
  name: hoe-manualgen
144
- requirement: &70112213973160 !ruby/object:Gem::Requirement
143
+ requirement: &70276480372420 !ruby/object:Gem::Requirement
145
144
  none: false
146
145
  requirements:
147
146
  - - ~>
@@ -149,10 +148,10 @@ dependencies:
149
148
  version: '0.2'
150
149
  type: :development
151
150
  prerelease: false
152
- version_requirements: *70112213973160
151
+ version_requirements: *70276480372420
153
152
  - !ruby/object:Gem::Dependency
154
153
  name: trollop
155
- requirement: &70112213972500 !ruby/object:Gem::Requirement
154
+ requirement: &70276480372000 !ruby/object:Gem::Requirement
156
155
  none: false
157
156
  requirements:
158
157
  - - ~>
@@ -160,10 +159,10 @@ dependencies:
160
159
  version: '1.16'
161
160
  type: :development
162
161
  prerelease: false
163
- version_requirements: *70112213972500
162
+ version_requirements: *70276480372000
164
163
  - !ruby/object:Gem::Dependency
165
164
  name: highline
166
- requirement: &70112213971560 !ruby/object:Gem::Requirement
165
+ requirement: &70276480371560 !ruby/object:Gem::Requirement
167
166
  none: false
168
167
  requirements:
169
168
  - - ~>
@@ -171,10 +170,10 @@ dependencies:
171
170
  version: '1.6'
172
171
  type: :development
173
172
  prerelease: false
174
- version_requirements: *70112213971560
173
+ version_requirements: *70276480371560
175
174
  - !ruby/object:Gem::Dependency
176
175
  name: sysexits
177
- requirement: &70112213970920 !ruby/object:Gem::Requirement
176
+ requirement: &70276480371140 !ruby/object:Gem::Requirement
178
177
  none: false
179
178
  requirements:
180
179
  - - ~>
@@ -182,10 +181,10 @@ dependencies:
182
181
  version: '1.0'
183
182
  type: :development
184
183
  prerelease: false
185
- version_requirements: *70112213970920
184
+ version_requirements: *70276480371140
186
185
  - !ruby/object:Gem::Dependency
187
186
  name: rdoc
188
- requirement: &70112213970460 !ruby/object:Gem::Requirement
187
+ requirement: &70276480370680 !ruby/object:Gem::Requirement
189
188
  none: false
190
189
  requirements:
191
190
  - - ~>
@@ -193,18 +192,18 @@ dependencies:
193
192
  version: '3.10'
194
193
  type: :development
195
194
  prerelease: false
196
- version_requirements: *70112213970460
195
+ version_requirements: *70276480370680
197
196
  - !ruby/object:Gem::Dependency
198
197
  name: hoe
199
- requirement: &70112213970040 !ruby/object:Gem::Requirement
198
+ requirement: &70276480221500 !ruby/object:Gem::Requirement
200
199
  none: false
201
200
  requirements:
202
201
  - - ~>
203
202
  - !ruby/object:Gem::Version
204
- version: '2.12'
203
+ version: '2.13'
205
204
  type: :development
206
205
  prerelease: false
207
- version_requirements: *70112213970040
206
+ version_requirements: *70276480221500
208
207
  description: ! 'Inversion is a templating system for Ruby. It uses the "Inversion
209
208
  of Control"
210
209
 
@@ -329,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
328
  version: '0'
330
329
  requirements: []
331
330
  rubyforge_project: inversion
332
- rubygems_version: 1.8.10
331
+ rubygems_version: 1.8.16
333
332
  signing_key:
334
333
  specification_version: 3
335
334
  summary: Inversion is a templating system for Ruby
metadata.gz.sig CHANGED
@@ -1,2 +1 @@
1
- +���:�3�qS z��RN�����Q�3;��-E
2
- B!�̔�e��k��(�:����$�ni7!!N�<��XK��x���]/~-�mr�N?B2�ֹ�"趓
1
+ �_k���\�%��2<�\�b�>���Q.ɬ�:%�<��Iw��z#ar�i�3���l(��R0���`0'���!P�֖��;�A@i4,�ڴCx�s���������i���������m ^6n��q�P4dR)Ap+�p*�N�����8@�υ�~��?��v�� �5��Q�[ss>����/5=q,፽���@��Y,>0�[aQ2����۹Ծ����$��>`�0�9�ɇ뛿oU~&՞�3{