inversion 1.1.1 → 1.2.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.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/ChangeLog +2012 -1916
  5. data/History.rdoc +10 -1
  6. data/Rakefile +3 -1
  7. data/bin/inversion +3 -1
  8. data/lib/inversion.rb +4 -4
  9. data/lib/inversion/command.rb +2 -1
  10. data/lib/inversion/exceptions.rb +4 -1
  11. data/lib/inversion/mixins.rb +3 -2
  12. data/lib/inversion/monkeypatches.rb +3 -2
  13. data/lib/inversion/parser.rb +2 -2
  14. data/lib/inversion/renderstate.rb +2 -1
  15. data/lib/inversion/sinatra.rb +4 -1
  16. data/lib/inversion/template.rb +2 -1
  17. data/lib/inversion/template/attrtag.rb +3 -1
  18. data/lib/inversion/template/begintag.rb +3 -1
  19. data/lib/inversion/template/calltag.rb +3 -1
  20. data/lib/inversion/template/codetag.rb +4 -2
  21. data/lib/inversion/template/commenttag.rb +3 -1
  22. data/lib/inversion/template/configtag.rb +3 -1
  23. data/lib/inversion/template/containertag.rb +2 -2
  24. data/lib/inversion/template/defaulttag.rb +3 -1
  25. data/lib/inversion/template/elsetag.rb +3 -1
  26. data/lib/inversion/template/elsiftag.rb +4 -3
  27. data/lib/inversion/template/endtag.rb +3 -3
  28. data/lib/inversion/template/escapetag.rb +3 -1
  29. data/lib/inversion/template/fortag.rb +3 -1
  30. data/lib/inversion/template/fragmenttag.rb +3 -1
  31. data/lib/inversion/template/iftag.rb +3 -1
  32. data/lib/inversion/template/importtag.rb +3 -1
  33. data/lib/inversion/template/includetag.rb +3 -1
  34. data/lib/inversion/template/node.rb +2 -1
  35. data/lib/inversion/template/pptag.rb +4 -2
  36. data/lib/inversion/template/publishtag.rb +3 -1
  37. data/lib/inversion/template/rescuetag.rb +3 -1
  38. data/lib/inversion/template/subscribetag.rb +3 -1
  39. data/lib/inversion/template/tag.rb +2 -2
  40. data/lib/inversion/template/textnode.rb +3 -1
  41. data/lib/inversion/template/timedeltatag.rb +16 -3
  42. data/lib/inversion/template/unlesstag.rb +3 -1
  43. data/lib/inversion/template/uriencodetag.rb +3 -1
  44. data/lib/inversion/template/yieldtag.rb +3 -1
  45. data/lib/inversion/tilt.rb +3 -1
  46. data/spec/inversion/template/pptag_spec.rb +2 -0
  47. data/spec/inversion/template/timedeltatag_spec.rb +7 -0
  48. metadata +31 -33
  49. metadata.gz.sig +0 -0
@@ -1,3 +1,12 @@
1
+ == v1.2.0 [2019-05-14] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Enhancements:
4
+
5
+ - Add frozen string literal support (Ruby 2.6+)
6
+ - Allow the timedelta tag to accept hash arguments and make
7
+ 'decorators' optional.
8
+
9
+
1
10
  == v1.1.1 [2017-11-13] Michael Granger <ged@FaerieMUD.org>
2
11
 
3
12
  Bugfixes:
@@ -7,7 +16,7 @@ Bugfixes:
7
16
 
8
17
  == v1.1.0 [2017-08-17] Mahlon E. Smith <mahlon@martini.nu>
9
18
 
10
- Mark as stable, update dependencies.
19
+ Enhancements:
11
20
 
12
21
  - Allow the use of the '!' operator in conditional tags, logically
13
22
  inverting the evaluated body.
data/Rakefile CHANGED
@@ -41,7 +41,7 @@ hoespec = Hoe.spec 'inversion' do
41
41
  self.dependency 'configurability', '~> 3.1', :development
42
42
  self.dependency 'rspec-wait', '~> 0.0', :development
43
43
 
44
- self.require_ruby_version( '>=2.2.0' )
44
+ self.require_ruby_version( '>=2.4.0' )
45
45
  self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
46
46
  self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
47
47
  self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
@@ -85,6 +85,8 @@ file GEMSPEC => __FILE__
85
85
  task GEMSPEC do |task|
86
86
  spec = $hoespec.spec
87
87
  spec.files.delete( '.gemtest' )
88
+ spec.signing_key = nil
89
+ spec.cert_chain = ['certs/ged.pem']
88
90
  spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
89
91
  File.open( task.name, 'w' ) do |fh|
90
92
  fh.write( spec.to_ruby )
@@ -1,4 +1,6 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+ # vim: set noet nosta sw=4 ts=4 :
2
4
 
3
5
  require 'inversion'
4
6
  require 'inversion/command'
@@ -1,5 +1,5 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
3
  # vim: set noet nosta sw=4 ts=4 :
4
4
 
5
5
  require 'loggability'
@@ -23,13 +23,13 @@ module Inversion
23
23
  log_as :inversion
24
24
 
25
25
 
26
- warn ">>> Inversion requires Ruby 2.2.0 or later. <<<" if RUBY_VERSION < '2.2.0'
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.1.1'
29
+ VERSION = '1.2.0'
30
30
 
31
31
  # Version-control revision constant
32
- REVISION = %q$Revision: 83231fd98787 $
32
+ REVISION = %q$Revision$
33
33
 
34
34
 
35
35
  ### Get the Inversion version.
@@ -1,5 +1,6 @@
1
1
  # -*- ruby -*-
2
- #encoding: utf-8
2
+ # frozen_string_literal: true
3
+ # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'logger'
5
6
  require 'trollop'
@@ -1,6 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion' unless defined?( Inversion )
6
+
4
7
  #--
5
8
  module Inversion
6
9
 
@@ -1,5 +1,6 @@
1
- #!/usr/bin/env ruby
2
- # vim: set nosta noet ts=4 sw=4:
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+ # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'tempfile'
5
6
 
@@ -1,5 +1,6 @@
1
- #!/usr/bin/env ruby
2
- # vim: set nosta noet ts=4 sw=4:
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+ # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'inversion' unless defined?( Inversion )
5
6
  require 'ripper'
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
3
  # vim: set noet nosta sw=4 ts=4 :
4
4
 
5
5
  require 'loggability'
@@ -1,4 +1,5 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'loggability'
@@ -1,4 +1,7 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+ # vim: set noet nosta sw=4 ts=4 :
4
+
2
5
 
3
6
  begin
4
7
  require 'inversion/tilt'
@@ -1,4 +1,5 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'loggability'
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/codetag'
5
7
 
6
8
  # Inversion attribute tag.
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/mixins'
5
7
  require 'inversion/template/attrtag'
6
8
  require 'inversion/template/containertag'
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/attrtag'
5
7
 
6
8
  # Inversion call tag.
@@ -1,7 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'ripper'
6
+ require 'inversion/template' unless defined?( Inversion::Template )
5
7
  require 'inversion/template/tag'
6
8
 
7
9
  # The base class for Inversion tags that parse the body section of the tag using
@@ -52,7 +54,7 @@ class Inversion::Template::CodeTag < Inversion::Template::Tag
52
54
  "invalid char in pattern: #{m[0].inspect}"
53
55
  end
54
56
 
55
- buf = '^'
57
+ buf = String.new( '^' )
56
58
  pattern.scan( /(?:\w+|\$\(|[()\[\]\{\}?*+\.]+)/ ) do |tok|
57
59
  case tok
58
60
  when /\w/
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
  require 'inversion/template/containertag'
6
8
 
@@ -1,8 +1,10 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'yaml'
5
6
  require 'inversion/mixins'
7
+ require 'inversion/template' unless defined?( Inversion::Template )
6
8
  require 'inversion/template/tag'
7
9
 
8
10
 
@@ -1,7 +1,7 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
- require 'inversion' unless defined?( Inversion )
5
5
  require 'inversion/template' unless defined?( Inversion::Template )
6
6
 
7
7
  # A mixin for a tag that allows it to contain other nodes.
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/codetag'
5
7
 
6
8
  # Inversion 'default' tag.
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
 
6
8
 
@@ -1,10 +1,11 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/attrtag'
5
7
  require 'inversion/template/commenttag'
6
- require 'inversion/template/iftag' unless
7
- defined?( Inversion::Template::IfTag )
8
+ require 'inversion/template/iftag'
8
9
 
9
10
 
10
11
  # Inversion 'elsif' tag.
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
- require 'inversion' unless defined?( Inversion )
5
5
  require 'inversion/template' unless defined?( Inversion::Template )
6
- require 'inversion/template/tag' unless defined?( Inversion::Template::Tag )
6
+ require 'inversion/template/tag'
7
7
 
8
8
  # Closing tag class
9
9
  class Inversion::Template::EndTag < Inversion::Template::Tag
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/attrtag'
5
7
 
6
8
  # Inversion escaping tag.
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/codetag'
5
7
  require 'inversion/template/containertag'
6
8
 
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
  require 'inversion/template/containertag'
6
8
 
@@ -1,7 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'inversion/mixins'
6
+ require 'inversion/template' unless defined?( Inversion::Template )
5
7
  require 'inversion/template/attrtag'
6
8
  require 'inversion/template/containertag'
7
9
 
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
 
6
8
  # Inversion import tag.
@@ -1,8 +1,10 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'pathname'
5
6
  require 'inversion/mixins'
7
+ require 'inversion/template' unless defined?( Inversion::Template )
6
8
  require 'inversion/template/tag'
7
9
 
8
10
 
@@ -1,4 +1,5 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'loggability'
@@ -1,7 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'pp'
6
+ require 'inversion/template' unless defined?( Inversion::Template )
5
7
  require 'inversion/template/calltag'
6
8
 
7
9
  # Inversion object inspection tag.
@@ -19,7 +21,7 @@ class Inversion::Template::PpTag < Inversion::Template::CallTag
19
21
  ### and return them.
20
22
  def render( render_state )
21
23
  raw = super
22
- buf = ''
24
+ buf = String.new( '' )
23
25
  PP.pp( raw, buf )
24
26
  return self.escape( buf.chomp, render_state )
25
27
  end
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
  require 'inversion/template/containertag'
6
8
 
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
 
6
8
 
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/tag'
5
7
 
6
8
  # Inversion subscription tag.
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'loggability'
5
6
 
6
- require 'inversion' unless defined?( Inversion )
7
7
  require 'inversion/template' unless defined?( Inversion::Template )
8
8
 
9
9
  require 'inversion/template/node'
@@ -1,6 +1,8 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
5
+ require 'inversion/template' unless defined?( Inversion::Template )
4
6
  require 'inversion/template/node'
5
7
 
6
8
  # Inversion text node class -- container for static content in templates between tags.
@@ -1,11 +1,15 @@
1
- #!/usr/bin/env ruby
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
2
3
  # vim: set noet nosta sw=4 ts=4 :
3
4
 
4
5
  require 'uri'
5
6
  require 'time'
6
7
  require 'date'
8
+
9
+ require 'inversion/template' unless defined?( Inversion::Template )
7
10
  require 'inversion/template/attrtag'
8
11
 
12
+
9
13
  # Inversion time delta tag.
10
14
  #
11
15
  # This tag is a derivative of the 'attr' tag that transforms the results of its method call
@@ -37,6 +41,11 @@ class Inversion::Template::TimeDeltaTag < Inversion::Template::AttrTag
37
41
  def render( renderstate )
38
42
  val = super( renderstate )
39
43
  time = nil
44
+ omit_decorator = false
45
+
46
+ if val.respond_to?( :key )
47
+ val, omit_decorator = val.values_at( :time, :omit_decorator )
48
+ end
40
49
 
41
50
  if val.respond_to?( :to_time )
42
51
  time = val.to_time
@@ -49,10 +58,14 @@ class Inversion::Template::TimeDeltaTag < Inversion::Template::AttrTag
49
58
  now = Time.now
50
59
  if now > time
51
60
  seconds = now - time
52
- return "%s ago" % [ timeperiod(seconds) ]
61
+ period = timeperiod( seconds )
62
+ period += ' ago' unless omit_decorator
63
+ return period
53
64
  else
54
65
  seconds = time - now
55
- return "%s from now" % [ timeperiod(seconds) ]
66
+ period = timeperiod( seconds )
67
+ period += ' from now' unless omit_decorator
68
+ return period
56
69
  end
57
70
  end
58
71