inversion 1.2.0 → 1.3.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.
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: []