inversion 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bf9a8bf3ebb17a6c9adc78d74c6f0a57e31240f593667420f1d3ba2c1306589
4
- data.tar.gz: be2fd78e9a7a16678e104d55f536e0c2678bbd9d275fba0c8c03458a200ad7e4
3
+ metadata.gz: ff47aba3a83fd9d627a25879f5dda61e904fcb60743fce28c45da4524c0c82f1
4
+ data.tar.gz: 58f0c44113f5cb33e1070e5767f08a95368867b5205f45addf7d9436da5246e3
5
5
  SHA512:
6
- metadata.gz: 92fd88df350740fba33c04413b4a60a2597d7d54b871303ff84e6b4cee01d43fda4498ffb3817a216753a0bb434784a6de5c8c10da926fad8a3fa1ba603ffcfa
7
- data.tar.gz: bc4ac371b912a8453150ceffc5a5e3b398e8ce665976c0aaa20b03fb63ed39de8876e2d7c7caba0583818a1da7e311f208ef930e41c555e22716e95157cdbde2
6
+ metadata.gz: 50af88a980608c0644d79f045a327ec145d257f299e19477f10379fcfe83148d07ec3d9bb93abd1bcfb3c06373772dfacfd3a2c44bd306ca39e5d25f16d3535c
7
+ data.tar.gz: ff1ccfb839a8963c4a9713ced1861a37aade69455a1a31b309f27dd23626b68a4ba423c80a0ef67c8e788c240176d1a4ae147658097fe2303297d9f46e1180b7
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,11 @@
1
+
2
+ == v1.3.0 [2020-04-08] Mahlon E. Smith <mahlon@martini.nu>
3
+
4
+ - Use safe_yaml when deserializing config tag contents.
5
+ - Un-hoeify.
6
+ - Updates for Ruby 2.7.
7
+
8
+
1
9
  == v1.2.0 [2019-05-14] Michael Granger <ged@FaerieMUD.org>
2
10
 
3
11
  Enhancements:
@@ -1,4 +1,3 @@
1
- ChangeLog
2
1
  Examples.rdoc
3
2
  GettingStarted.rdoc
4
3
  Guide.rdoc
@@ -1,8 +1,9 @@
1
1
  = inversion
2
2
 
3
- home :: http://deveiate.org/projects/Inversion
4
- code :: http://repo.deveiate.org/Inversion
5
- github :: http://github.com/ged/inversion.git
3
+ home:: https://hg.sr.ht/~ged/Inversion
4
+ code:: https://hg.sr.ht/~ged/Inversion/browse
5
+ github:: https://github.com/ged/inversion
6
+ docs:: http://deveiate.org/code/Inversion
6
7
 
7
8
 
8
9
  == Description
@@ -116,10 +117,15 @@ After checking out the source, run:
116
117
  This task will install any missing dependencies, run the tests/specs,
117
118
  and generate the API documentation.
118
119
 
120
+ == Authors
121
+
122
+ * Michael Granger <ged@faeriemud.org>
123
+ * Mahlon E. Smith <mahlon@martini.nu>
124
+
119
125
 
120
126
  == License
121
127
 
122
- Copyright © 2011-2015, Michael Granger and Mahlon E. Smith
128
+ Copyright © 2011-2020, Michael Granger and Mahlon E. Smith
123
129
  All rights reserved.
124
130
 
125
131
  Redistribution and use in source and binary forms, with or without
data/Rakefile CHANGED
@@ -1,97 +1,7 @@
1
- #!/usr/bin/env rake
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
 
3
- require 'rake/clean'
4
- require 'rdoc/task'
4
+ require 'rake/deveiate'
5
5
 
6
- begin
7
- require 'hoe'
8
- rescue LoadError
9
- abort "This Rakefile requires hoe (gem install hoe)"
10
- end
6
+ Rake::DevEiate.setup( 'inversion' )
11
7
 
12
- GEMSPEC = 'inversion.gemspec'
13
-
14
- Hoe.plugin :mercurial
15
- Hoe.plugin :publish
16
- Hoe.plugin :signing
17
-
18
- Hoe.plugins.delete :rubyforge
19
-
20
- hoespec = Hoe.spec 'inversion' do
21
- self.readme_file = 'README.rdoc'
22
- self.history_file = 'History.rdoc'
23
- self.extra_rdoc_files << 'README.rdoc' << 'History.rdoc'
24
- self.license "BSD"
25
-
26
- self.developer 'Michael Granger', 'ged@FaerieMUD.org'
27
- self.developer 'Mahlon E. Smith', 'mahlon@martini.nu'
28
-
29
- self.dependency 'loggability', '~> 0.12'
30
-
31
- self.dependency 'highline', '~> 1.6', :development
32
- self.dependency 'hoe-deveiate', '~> 0.9', :development
33
- self.dependency 'rack-test', '~> 0.6', :development
34
- self.dependency 'simplecov', '~> 0.8', :development
35
- self.dependency 'sinatra', '~> 1.4', :development
36
- self.dependency 'tilt', '~> 1.4', :development
37
- self.dependency 'sysexits', '~> 1.0', :development
38
- self.dependency 'trollop', '~> 2.0', :development
39
- self.dependency 'rdoc', '~> 5.1', :development
40
- self.dependency 'rdoc-generator-fivefish', '~> 0.3', :development
41
- self.dependency 'configurability', '~> 3.1', :development
42
- self.dependency 'rspec-wait', '~> 0.0', :development
43
-
44
- self.require_ruby_version( '>=2.4.0' )
45
- self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
46
- self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
47
- self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
48
- end
49
-
50
- ENV['VERSION'] ||= hoespec.spec.version.to_s
51
-
52
- # Ensure the specs pass before checking in
53
- task 'hg:precheckin' => [:check_history, :check_manifest, :gemspec, :spec]
54
-
55
- if Rake::Task.task_defined?( '.gemtest' )
56
- Rake::Task['.gemtest'].clear
57
- task '.gemtest' do
58
- $stderr.puts "Not including a .gemtest until I'm confident the test suite is idempotent."
59
- end
60
- end
61
-
62
- desc "Build a coverage report"
63
- task :coverage do
64
- ENV["COVERAGE"] = 'yes'
65
- Rake::Task[:spec].invoke
66
- end
67
-
68
-
69
- # Use the fivefish formatter for docs generated from development checkout
70
- if File.directory?( '.hg' )
71
- require 'rdoc/task'
72
-
73
- Rake::Task[ 'docs' ].clear
74
- RDoc::Task.new( 'docs' ) do |rdoc|
75
- rdoc.main = "README.rdoc"
76
- rdoc.rdoc_files.include( "*.rdoc", "ChangeLog", "lib/**/*.rb" )
77
- rdoc.generator = :fivefish
78
- rdoc.title = "Inversion Templating"
79
- rdoc.rdoc_dir = 'doc'
80
- end
81
- end
82
-
83
- task :gemspec => GEMSPEC
84
- file GEMSPEC => __FILE__
85
- task GEMSPEC do |task|
86
- spec = $hoespec.spec
87
- spec.files.delete( '.gemtest' )
88
- spec.signing_key = nil
89
- spec.cert_chain = ['certs/ged.pem']
90
- spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
91
- File.open( task.name, 'w' ) do |fh|
92
- fh.write( spec.to_ruby )
93
- end
94
- end
95
-
96
- CLOBBER.include( GEMSPEC.to_s )
97
- task :default => :gemspec
@@ -26,7 +26,7 @@ module Inversion
26
26
  warn ">>> Inversion requires Ruby 2.4.0 or later. <<<" if RUBY_VERSION < '2.4.0'
27
27
 
28
28
  # Library version constant
29
- VERSION = '1.2.0'
29
+ VERSION = '1.3.0'
30
30
 
31
31
  # Version-control revision constant
32
32
  REVISION = %q$Revision$
@@ -88,7 +88,7 @@ module Inversion
88
88
 
89
89
 
90
90
  ### Return a duplicate of the given +hash+ with its identifier-like keys
91
- ### untainted and transformed into symbols from whatever they were before.
91
+ ### transformed into symbols from whatever they were before.
92
92
  ###
93
93
  ### symbolhash = symbolify_keys( stringhash )
94
94
  ###
@@ -96,7 +96,7 @@ module Inversion
96
96
  newhash = {}
97
97
 
98
98
  hash.each do |key,val|
99
- keysym = key.to_s.dup.untaint.to_sym
99
+ keysym = key.to_s.to_sym
100
100
 
101
101
  if val.is_a?( Hash )
102
102
  newhash[ keysym ] = symbolify_keys( val )
@@ -201,7 +201,6 @@ class Inversion::Template
201
201
  else
202
202
  tmpl.read
203
203
  end
204
- source.untaint
205
204
 
206
205
  # Load the instance and set the path to the source
207
206
  template = self.new( source, parsestate, opts )
@@ -19,7 +19,7 @@ class Inversion::Template::AttrTag < Inversion::Template::CodeTag
19
19
  # <?attr foo ?>
20
20
  tag_pattern '$(ident)' do |tag, match|
21
21
  tag.send( :log ).debug " Identifier is: %p" % [ match.string(1) ]
22
- tag.name = match.string( 1 ).untaint.to_sym
22
+ tag.name = match.string( 1 ).to_sym
23
23
  end
24
24
 
25
25
  # <?attr "%s" % foo ?>
@@ -28,12 +28,12 @@ class Inversion::Template::AttrTag < Inversion::Template::CodeTag
28
28
  raise Inversion::ParseError, "expected '%%', got %p instead" % [ op ] unless op == '%'
29
29
 
30
30
  tag.format = match.string( 1 )
31
- tag.name = match.string( 3 ).untaint.to_sym
31
+ tag.name = match.string( 3 ).to_sym
32
32
  end
33
33
 
34
34
  # <?attr foo.methodchain ?>
35
35
  tag_pattern '$(ident) $( .+ )' do |tag, match|
36
- tag.name = match.string( 1 ).untaint.to_sym
36
+ tag.name = match.string( 1 ).to_sym
37
37
  tag.methodchain = match.string( 2 )
38
38
  end
39
39
 
@@ -43,7 +43,7 @@ class Inversion::Template::AttrTag < Inversion::Template::CodeTag
43
43
  raise Inversion::ParseError, "expected '%%', got %p instead" % [ op ] unless op == '%'
44
44
 
45
45
  tag.format = match.string( 1 )
46
- tag.name = match.string( 3 ).untaint.to_sym
46
+ tag.name = match.string( 3 ).to_sym
47
47
  tag.methodchain = match.string( 4 )
48
48
  end
49
49
 
@@ -60,7 +60,7 @@ class Inversion::Template::AttrTag < Inversion::Template::CodeTag
60
60
  super
61
61
 
62
62
  # Add an identifier for the tag name
63
- self.identifiers << self.name.untaint.to_sym
63
+ self.identifiers << self.name.to_sym
64
64
  end
65
65
 
66
66
 
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
  # vim: set noet nosta sw=4 ts=4 :
4
4
 
5
- require 'yaml'
5
+ require 'safe_yaml'
6
6
  require 'inversion/mixins'
7
7
  require 'inversion/template' unless defined?( Inversion::Template )
8
8
  require 'inversion/template/tag'
@@ -36,7 +36,7 @@ class Inversion::Template::ConfigTag < Inversion::Template::Tag
36
36
  raise Inversion::ParseError, 'Empty config settings' if
37
37
  body.nil? || body.strip.empty?
38
38
 
39
- opts = YAML.load( body )
39
+ opts = YAML.load( body, safe: true )
40
40
  @options = symbolify_keys( opts )
41
41
 
42
42
  super
@@ -66,7 +66,7 @@ class Inversion::Template::DefaultTag < Inversion::Template::CodeTag
66
66
  super
67
67
 
68
68
  # Add an identifier for the tag name
69
- self.identifiers << self.name.untaint.to_sym
69
+ self.identifiers << self.name.to_sym
70
70
  end
71
71
 
72
72
 
@@ -36,7 +36,7 @@ class Inversion::Template::ElsifTag < Inversion::Template::AttrTag
36
36
  raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
37
37
 
38
38
  tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
39
- tag.name = match.string( 2 ).untaint.to_sym
39
+ tag.name = match.string( 2 ).to_sym
40
40
  tag.inverted = true
41
41
  end
42
42
 
@@ -36,8 +36,8 @@ class Inversion::Template::ForTag < Inversion::Template::CodeTag
36
36
  raise Inversion::ParseError, "invalid keyword: expected 'in', got %p for %p" %
37
37
  [ match.string(2), tag.body ] unless match.string(2) == 'in'
38
38
 
39
- tag.block_args << match.string( 1 ).untaint.to_sym
40
- tag.identifiers << match.string( 3 ).untaint.to_sym
39
+ tag.block_args << match.string( 1 ).to_sym
40
+ tag.identifiers << match.string( 3 ).to_sym
41
41
 
42
42
  tag.enumerator = match.string( 3 )
43
43
  tag.enumerator << match.string( 4 ) if match.string( 4 )
@@ -50,8 +50,8 @@ class Inversion::Template::ForTag < Inversion::Template::CodeTag
50
50
  raise Inversion::ParseError, "invalid keyword: expected 'in', got %p for %p" %
51
51
  [ match.string(2), tag.body ] unless match.string(2) == 'in'
52
52
 
53
- tag.block_args += match.string( 1 ).untaint.split(/,\s?/).map( &:to_sym )
54
- tag.identifiers << match.string( 3 ).untaint.to_sym
53
+ tag.block_args += match.string( 1 ).split(/,\s?/).map( &:to_sym )
54
+ tag.identifiers << match.string( 3 ).to_sym
55
55
 
56
56
  tag.enumerator = match.string( 3 )
57
57
  tag.enumerator << match.string( 4 ) if match.string( 4 )
@@ -31,7 +31,7 @@ class Inversion::Template::IfTag < Inversion::Template::AttrTag
31
31
  raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
32
32
 
33
33
  tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
34
- tag.name = match.string( 2 ).untaint.to_sym
34
+ tag.name = match.string( 2 ).to_sym
35
35
  tag.inverted = true
36
36
  end
37
37
 
@@ -21,7 +21,7 @@ class Inversion::Template::ImportTag < Inversion::Template::Tag
21
21
  ### Ruby identifier.
22
22
  def initialize( body, linenum=nil, colnum=nil )
23
23
  super
24
- @attributes = body.split( /\s*,\s*/ ).collect {|name| name.untaint.strip.to_sym }
24
+ @attributes = body.split( /\s*,\s*/ ).collect {|name| name.strip.to_sym }
25
25
  end
26
26
 
27
27
 
@@ -66,7 +66,7 @@ class Inversion::Template::Tag < Inversion::Template::Node
66
66
  tags = {}
67
67
 
68
68
  Gem.find_files( TAG_PLUGIN_PATTERN ).each do |tagfile|
69
- tagname = tagfile[ %r{/(\w+?)_?tag\.rb$}, 1 ].untaint
69
+ tagname = tagfile[ %r{/(\w+?)_?tag\.rb$}, 1 ]
70
70
  next unless tagname
71
71
 
72
72
  self.load( tagfile )
@@ -121,7 +121,7 @@ class Inversion::Template::Tag < Inversion::Template::Node
121
121
  ### Create a new Inversion::Template::Tag from the specified +tagname+ and +body+.
122
122
  def self::create( tagname, body, linenum=nil, colnum=nil )
123
123
  tagname =~ /^(\w+)$/i or raise ArgumentError, "invalid tag name %p" % [ tagname ]
124
- tagtype = $1.downcase.untaint
124
+ tagtype = $1.downcase
125
125
 
126
126
  unless tagclass = self.types[ tagtype.to_sym ]
127
127
  Inversion.log.warn "Unknown tag type %p; registered: %p" %
@@ -32,7 +32,7 @@ class Inversion::Template::UnlessTag < Inversion::Template::AttrTag
32
32
  raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
33
33
 
34
34
  tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
35
- tag.name = match.string( 2 ).untaint.to_sym
35
+ tag.name = match.string( 2 ).to_sym
36
36
  tag.inverted = true
37
37
  end
38
38
 
@@ -1,4 +1,4 @@
1
- <!-- $Id$ -->
1
+ <!-- $Id: unknown-tag.tmpl,v 1b4030ae65f3 2013/06/19 16:00:23 ged $ -->
2
2
  <?unknown This is an unknown tag type ?>
3
3
  <?comment Some stuff. ?>
4
4
  Stuff
@@ -235,16 +235,6 @@ describe Inversion, "mixins" do
235
235
  expect( copy.default_proc ).to eq( original.default_proc )
236
236
  end
237
237
 
238
- it "preserves taintedness of copied objects" do
239
- original = Object.new
240
- original.taint
241
-
242
- copy = Inversion::DataUtilities.deep_copy( original )
243
-
244
- expect( copy ).to_not be( original )
245
- expect( copy ).to be_tainted()
246
- end
247
-
248
238
  it "preserves frozen-ness of copied objects" do
249
239
  original = Object.new
250
240
  original.freeze
@@ -41,15 +41,6 @@ describe Inversion::RenderState do
41
41
  expect( state.scope[:bear] ).to_not equal( attributes[:bear] )
42
42
  end
43
43
 
44
- it "preserves tainted status when copying its attributes" do
45
- attributes = { :danger => "in pants" }
46
- attributes[:danger].taint
47
-
48
- state = Inversion::RenderState.new( attributes )
49
-
50
- expect( state.scope[:danger] ).to be_tainted()
51
- end
52
-
53
44
  it "preserves singleton methods on attribute objects when copying" do
54
45
  obj = Object.new
55
46
  def obj.foo; "foo!"; end
@@ -190,18 +190,14 @@ describe Inversion::Template do
190
190
 
191
191
  before( :each ) do
192
192
  @timestamp = Time.now
193
- content = 'file contents'.taint
193
+ content = 'file contents'
194
194
  allow( IO ).to receive( :read ).with( '/tmp/hooowat' ).and_return( content )
195
195
  @template = described_class.load( '/tmp/hooowat' )
196
196
  end
197
197
 
198
198
 
199
- it "untaints template content loaded from a file" do
200
- expect( @template.source ).to_not be_tainted()
201
- end
202
-
203
199
  it "can be reloaded" do
204
- newcontent = 'changed file contents'.taint
200
+ newcontent = 'changed file contents'
205
201
  expect( IO ).to receive( :read ).with( '/tmp/hooowat' ).and_return( newcontent )
206
202
  @template.reload
207
203
  expect( @template.source ).to eq( newcontent )
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: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,174 +11,174 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xODExMjAxODI5NTlaFw0xOTExMjAxODI5
16
- NTlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
17
- hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
18
- L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
19
- M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
20
- 5PU2AEbf04GGSrmqADGWXeaslaoRdb1fu/0M5qfPTRn5V39sWD9umuDAF9qqil/x
21
- Sl6phTvgBrG8GExHbNZpLARd3xrBYLEFsX7RvBn2UPfgsrtvpdXjsHGfpT3IPN+B
22
- vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
23
- dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
24
- ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
25
- N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
26
- VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
27
- FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
28
- Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAP9Ffkvg4e8CjIWi8SykQ8oJSS8jbmbgF
29
- abke3vXWLG6V9kFiObuJd5wZRBluJANu7bEtjgc3fFaGVP2XxVdCpVjNbmMDg4Qp
30
- ovvczP53X6pQP2RSZgxF6Lblvy8y11RziUTVRG/Z2aJHsElo6gI7vQznE/OSDrhC
31
- gEhr8uaIUt7D+HZWRbU0+MkKPpL5uMqaFuJbqXEvSwPTuUuYkDfNfsjQO7ruWBac
32
- bxHCrvpZ6Tijc0nrlyXi6gPOCLeaqhau2xFnlvKgELwsGYSoKBJyDwqtQ5kwrOlU
33
- tkSyLrfZ+RZcH535Hyvif7ZxB0v5OxXXoec+N2vrUsEUMRDL9dg4/WFdN8hIOixF
34
- 3IPKpZ1ho0Ya5q7yhygtBK9/NBFHw+nbJjcltfPDBXleRe8u73gnQo8AZIhStYSP
35
- v4qqqa27Bs468d6SoPxjSm8a2mM9HZ4OdWhq4tFsbTeXDVquCfi64OTEaTt2xQdR
36
- JnC4lpJfCP6aCXa5h2XAQfPSH636cQap
14
+ MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdtYWhs
15
+ b24vREM9bWFydGluaS9EQz1udTAeFw0yMDAyMTkyMTU4NDBaFw0yMTAyMTgyMTU4
16
+ NDBaMCIxIDAeBgNVBAMMF21haGxvbi9EQz1tYXJ0aW5pL0RDPW51MIIBojANBgkq
17
+ hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3cz7ILM8n+Y5nvz7mVRVqE8LusWdT8NX
18
+ nlnETynDndenI+a2S3j22DR+U4ooGUjuCHE3iR1CVmTDGbxFfNRfmnC1AN9Hybat
19
+ ewW+onvMBye7yfO0bJB5vkqaW5vd35rzquOffgBtJMo7rPRu6pX8RkL34Wnew4J7
20
+ POooUcYbWSAO934HSCUC8wVm6b4v/ejVF1Lk44Dz45jtMqtR7KTAtpipdbTXAarO
21
+ HQy3eVes/0oTqhk4CP50r1KP09nUHTn2lzVaCN9vmNE/Jwe0AuQ9ImvZXPpCsMMl
22
+ V03/tuJ++48sVmOIusJkASPupXcdI6zqsjYw2vLMFtuYNskRSvwbn6Wm6x9hLWWj
23
+ IRp5FvHPORLRCHFizXRmXZ3PyFHqbv6m4yG0SyfMzOXPk3Hn5dqqmK+BFCihTZIN
24
+ fqpBmuxyNEE21fSO9ALLlWeW9ffg9Ye5Sc1n3yEyv8rPb9VDvi1B5N6xIcDFMNVs
25
+ RiCamNbET4Sq9VIYwYtcB1f6EataqFEhAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
26
+ VR0PBAQDAgSwMB0GA1UdDgQWBBR8KtAhZIhe2uPQHCgU5HurIG7crTAcBgNVHREE
27
+ FTATgRFtYWhsb25AbWFydGluaS5udTAcBgNVHRIEFTATgRFtYWhsb25AbWFydGlu
28
+ aS5udTANBgkqhkiG9w0BAQsFAAOCAYEAHXlLXIKQUjd0VYj2mPgMheMjLEtmhHu+
29
+ 7NdIv8Bz4rpKAdhypy30xjukGLTOKBp1C0TjfHXowW/icK0bv9CO9Chbc09/+Ed2
30
+ K5IsyENen+YLeLfE8dguq5tHlfocbFilRGHt8BHHO9BpPpAYoPt/76SCC2NaU5vN
31
+ 33YTCpaVP0raS6E4i+xtx5PNdKoeTdrgwCQtUBhGf3L9YbZy1UaSeAyng5keuOzV
32
+ Mu2osihEB0GE0pOZJNpI6ow+0emwN/XvBKHpN9D2bjbvKetyQSrm0OniaZBXIGzW
33
+ Bg0JmajxUaGYWnz+QFADT+HLPmekxF3mB4+0ymZCHKPC+04h6RDjvkEOji6Jm+VB
34
+ JHjnceUEejSXTkZAKAmiOAtnX4j1MM1DLiFMlZ5Wbt7hbiOiO5HoN9p9snZhYqSU
35
+ JyAQQloqY/KyzQqxPlKdMNmBxRU+Cdarp05lEI6Sfj9MdrndoIL6MT/f6PgoCWZQ
36
+ xEarK1Fn47yS4UZqRi6VgKc3JHscX9x4
37
37
  -----END CERTIFICATE-----
38
- date: 2019-06-01 00:00:00.000000000 Z
38
+ date: 2020-04-08 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
- name: loggability
41
+ name: highline
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.12'
46
+ version: '2.0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.12'
53
+ version: '2.0'
54
54
  - !ruby/object:Gem::Dependency
55
- name: hoe-mercurial
55
+ name: loggability
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.4'
61
- type: :development
60
+ version: '0.17'
61
+ type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '1.4'
67
+ version: '0.17'
68
68
  - !ruby/object:Gem::Dependency
69
- name: hoe-deveiate
69
+ name: sysexits
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.10'
75
- type: :development
74
+ version: '1.2'
75
+ type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.10'
81
+ version: '1.2'
82
82
  - !ruby/object:Gem::Dependency
83
- name: hoe-highline
83
+ name: trollop
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.2'
89
- type: :development
88
+ version: '2.9'
89
+ type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '0.2'
95
+ version: '2.9'
96
96
  - !ruby/object:Gem::Dependency
97
- name: highline
97
+ name: rack-test
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '1.6'
102
+ version: '1.1'
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.6'
109
+ version: '1.1'
110
110
  - !ruby/object:Gem::Dependency
111
- name: rack-test
111
+ name: rake-deveiate
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0.6'
116
+ version: '0.14'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '0.6'
123
+ version: '0.14'
124
124
  - !ruby/object:Gem::Dependency
125
- name: simplecov
125
+ name: rdoc
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '0.8'
130
+ version: '6.2'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '0.8'
137
+ version: '6.2'
138
138
  - !ruby/object:Gem::Dependency
139
- name: sinatra
139
+ name: rdoc-generator-fivefish
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '1.4'
144
+ version: '0.4'
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '1.4'
151
+ version: '0.4'
152
152
  - !ruby/object:Gem::Dependency
153
- name: tilt
153
+ name: rspec-wait
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '1.4'
158
+ version: '0.0'
159
159
  type: :development
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '1.4'
165
+ version: '0.0'
166
166
  - !ruby/object:Gem::Dependency
167
- name: sysexits
167
+ name: simplecov
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '1.0'
172
+ version: '0.18'
173
173
  type: :development
174
174
  prerelease: false
175
175
  version_requirements: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: '1.0'
179
+ version: '0.18'
180
180
  - !ruby/object:Gem::Dependency
181
- name: trollop
181
+ name: sinatra
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
@@ -192,96 +192,31 @@ dependencies:
192
192
  - !ruby/object:Gem::Version
193
193
  version: '2.0'
194
194
  - !ruby/object:Gem::Dependency
195
- name: rdoc
196
- requirement: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - "~>"
199
- - !ruby/object:Gem::Version
200
- version: '5.1'
201
- type: :development
202
- prerelease: false
203
- version_requirements: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - "~>"
206
- - !ruby/object:Gem::Version
207
- version: '5.1'
208
- - !ruby/object:Gem::Dependency
209
- name: rdoc-generator-fivefish
210
- requirement: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - "~>"
213
- - !ruby/object:Gem::Version
214
- version: '0.3'
215
- type: :development
216
- prerelease: false
217
- version_requirements: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - "~>"
220
- - !ruby/object:Gem::Version
221
- version: '0.3'
222
- - !ruby/object:Gem::Dependency
223
- name: configurability
224
- requirement: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - "~>"
227
- - !ruby/object:Gem::Version
228
- version: '3.1'
229
- type: :development
230
- prerelease: false
231
- version_requirements: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - "~>"
234
- - !ruby/object:Gem::Version
235
- version: '3.1'
236
- - !ruby/object:Gem::Dependency
237
- name: rspec-wait
238
- requirement: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - "~>"
241
- - !ruby/object:Gem::Version
242
- version: '0.0'
243
- type: :development
244
- prerelease: false
245
- version_requirements: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: '0.0'
250
- - !ruby/object:Gem::Dependency
251
- name: hoe
195
+ name: tilt
252
196
  requirement: !ruby/object:Gem::Requirement
253
197
  requirements:
254
198
  - - "~>"
255
199
  - !ruby/object:Gem::Version
256
- version: '3.17'
200
+ version: '2.0'
257
201
  type: :development
258
202
  prerelease: false
259
203
  version_requirements: !ruby/object:Gem::Requirement
260
204
  requirements:
261
205
  - - "~>"
262
206
  - !ruby/object:Gem::Version
263
- version: '3.17'
264
- description: |-
265
- Inversion is a templating system for Ruby. It uses the "Inversion of Control"
266
- principle to decouple the contents and structure of templates from the code
267
- that uses them, making it easier to separate concerns, keep your tests simple,
207
+ version: '2.0'
208
+ description: Inversion is a templating system for Ruby. It uses the “Inversion of
209
+ Control” principle to decouple the contents and structure of templates from the
210
+ code that uses them, making it easier to separate concerns, keep your tests simple,
268
211
  and avoid polluting scopes with ephemeral data.
269
212
  email:
270
- - ged@FaerieMUD.org
213
+ - ged@faeriemud.org
271
214
  - mahlon@martini.nu
272
215
  executables:
273
216
  - inversion
274
217
  extensions: []
275
- extra_rdoc_files:
276
- - Examples.rdoc
277
- - GettingStarted.rdoc
278
- - Guide.rdoc
279
- - History.rdoc
280
- - Manifest.txt
281
- - README.rdoc
282
- - Tags.rdoc
218
+ extra_rdoc_files: []
283
219
  files:
284
- - ChangeLog
285
220
  - Examples.rdoc
286
221
  - GettingStarted.rdoc
287
222
  - Guide.rdoc
@@ -368,29 +303,31 @@ files:
368
303
  - spec/inversion/template_spec.rb
369
304
  - spec/inversion/tilt_spec.rb
370
305
  - spec/inversion_spec.rb
371
- homepage: http://deveiate.org/projects/Inversion
306
+ homepage: https://hg.sr.ht/~ged/Inversion
372
307
  licenses:
373
- - BSD
374
- metadata: {}
308
+ - BSD-3-Clause
309
+ metadata:
310
+ homepage_uri: https://hg.sr.ht/~ged/Inversion
311
+ documentation_uri: http://deveiate.org/code/Inversion
312
+ source_uri: https://hg.sr.ht/~ged/Inversion/browse
313
+ bug_tracker_uri: https://todo.sr.ht/~ged/Inversion/browse
375
314
  post_install_message:
376
- rdoc_options:
377
- - "--main"
378
- - README.rdoc
315
+ rdoc_options: []
379
316
  require_paths:
380
317
  - lib
381
318
  required_ruby_version: !ruby/object:Gem::Requirement
382
319
  requirements:
383
320
  - - ">="
384
321
  - !ruby/object:Gem::Version
385
- version: 2.4.0
322
+ version: '0'
386
323
  required_rubygems_version: !ruby/object:Gem::Requirement
387
324
  requirements:
388
325
  - - ">="
389
326
  - !ruby/object:Gem::Version
390
327
  version: '0'
391
328
  requirements: []
392
- rubygems_version: 3.0.3
329
+ rubygems_version: 3.0.6
393
330
  signing_key:
394
331
  specification_version: 4
395
- summary: Inversion is a templating system for Ruby
332
+ summary: Inversion is a templating system for Ruby.
396
333
  test_files: []