inversion 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: f4b8da84f00dd67a57f9f261339c2f8fd0dad397
4
- data.tar.gz: 21dbe5879f682b3b5b4a8c955bc48619cd6636ab
3
+ metadata.gz: 7cf0ec8317d7f79b22a9794a8e2a3b76bb07997a
4
+ data.tar.gz: 1f764e3040c76d9bd77a11bd724e810f0ef130f9
5
5
  SHA512:
6
- metadata.gz: 586cf26085d8dc43c9034c686428009ba5d55d12c9c8bdeb2ad9a888aa8a8b5b5eefb305a0be3485b74d1d3e7a08d14ec9ac9e0a668ddc412f547883be426ca4
7
- data.tar.gz: 7c5995c50244a22c035242a5363901fb110ac84fc541e6feea4ca172a954598e570ca0b75b11a452fe8d448f6330496cd009fcabe42189398720d979b2fd8b9d
6
+ metadata.gz: 4556f52e5440ce70bc43fe4be3a6a554e744fd256b02e4db46fa0e1076f6c2b54cfda8a9dca688e8b9ca5155b4401bb13eb4a22c7ad5ee8645c0b966bcbbbdb3
7
+ data.tar.gz: 622843dfcd26395a459000bbe0e9639d50ebd0f88a0a3ae5be6d10f9369c6cf248ef6cbc6703ca2e91e8619c635f61fbc727fbfda4065caf3c9469f9aa9289ef
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,14 @@
1
+ == v1.1.0 [2017-08-17] Mahlon E. Smith <mahlon@martini.nu>
2
+
3
+ Mark as stable, update dependencies.
4
+
5
+ - Allow the use of the '!' operator in conditional tags, logically
6
+ inverting the evaluated body.
7
+
8
+ - Provide a method for children tags to inherit and append to their
9
+ parents matcher patterns.
10
+
11
+
1
12
  == v1.0.0 [2017-01-16] Michael Granger <ged@FaerieMUD.org>
2
13
 
3
14
  Mark as stable, update dependencies.
@@ -1,4 +1,3 @@
1
- ChangeLog
2
1
  Examples.rdoc
3
2
  GettingStarted.rdoc
4
3
  Guide.rdoc
@@ -26,10 +26,10 @@ module Inversion
26
26
  warn ">>> Inversion requires Ruby 2.2.0 or later. <<<" if RUBY_VERSION < '2.2.0'
27
27
 
28
28
  # Library version constant
29
- VERSION = '1.0.0'
29
+ VERSION = '1.1.0'
30
30
 
31
31
  # Version-control revision constant
32
- REVISION = %q$Revision: a4b621e66915 $
32
+ REVISION = %q$Revision: ee12b27acbe2 $
33
33
 
34
34
 
35
35
  ### Get the Inversion version.
@@ -100,6 +100,15 @@ class Inversion::Template::CodeTag < Inversion::Template::Tag
100
100
  end
101
101
 
102
102
 
103
+ ### Declarative that forces a tag to inherit existing patterns from
104
+ ### its parent, rather than replacing them. Afterwards, you can use
105
+ ### +tag_pattern+ regularly, appending to the list.
106
+ def self::inherit_tag_patterns
107
+ raise ScriptError, "Patterns already exist for this tag." if defined?( @tag_patterns )
108
+ @tag_patterns = self.superclass.tag_patterns
109
+ end
110
+
111
+
103
112
  #################################################################
104
113
  ### I N S T A N C E M E T H O D S
105
114
  #################################################################
@@ -24,7 +24,31 @@ require 'inversion/template/iftag' unless
24
24
  #
25
25
  class Inversion::Template::ElsifTag < Inversion::Template::AttrTag
26
26
 
27
- # Inherits AttrTag's tag patterns
27
+ # Inherit AttrTag's tag patterns first.
28
+ inherit_tag_patterns
29
+
30
+ # Append a 'not' tag matcher.
31
+ # <?elsif ! foo ?>, <?elsif !foo ?>
32
+ #
33
+ tag_pattern '$(op) sp* $(ident)' do |tag, match|
34
+ op = match.string( 1 )
35
+ raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
36
+
37
+ tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
38
+ tag.name = match.string( 2 ).untaint.to_sym
39
+ tag.inverted = true
40
+ end
41
+
42
+
43
+ ### Create a new ElsifTag.
44
+ def initialize( body, linenum=nil, colnum=nil )
45
+ @inverted = false
46
+ super
47
+ end
48
+
49
+ # Invert the tag's renderstate if created with the 'not' operator.
50
+ attr_accessor :inverted
51
+
28
52
 
29
53
  ### Parsing callback -- check to be sure the node tree can have an
30
54
  ### 'elsif' tag appended to it (i.e., it has an opening 'if' tag).
@@ -46,19 +70,23 @@ class Inversion::Template::ElsifTag < Inversion::Template::AttrTag
46
70
  end
47
71
 
48
72
 
49
- ### Always remder as an empty string.
73
+ ### Always render as an empty string.
50
74
  def render( * )
51
75
  nil
52
76
  end
53
77
 
54
78
 
55
- ### Toggle rendering for the iftag's container if rendering hasn't yet been
79
+ ### Toggle rendering for the elsiftag's container if rendering hasn't yet been
56
80
  ### toggled.
57
81
  def before_rendering( renderstate )
82
+
83
+ evaluated_state = self.evaluate( renderstate )
84
+ evaluated_state = ! evaluated_state if self.inverted
85
+
58
86
  if renderstate.tag_data[ :rendering_was_enabled ]
59
87
  self.log.debug "Rendering was previously enabled; disabling"
60
88
  renderstate.disable_rendering
61
- elsif self.evaluate( renderstate )
89
+ elsif evaluated_state
62
90
  self.log.debug "Rendering was previously disabled, and condition is true; enabling"
63
91
  renderstate.tag_data[ :rendering_was_enabled ] = true
64
92
  renderstate.enable_rendering
@@ -18,28 +18,55 @@ require 'inversion/template/containertag'
18
18
  class Inversion::Template::IfTag < Inversion::Template::AttrTag
19
19
  include Inversion::Template::ContainerTag
20
20
 
21
- # Inherits AttrTag's tag patterns
21
+ # Inherit AttrTag's tag patterns first.
22
+ inherit_tag_patterns
23
+
24
+ # Append a 'not' tag matcher.
25
+ # <?if ! foo ?>, <?if !foo ?>
26
+ #
27
+ tag_pattern '$(op) sp* $(ident)' do |tag, match|
28
+ op = match.string( 1 )
29
+ raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
30
+
31
+ tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
32
+ tag.name = match.string( 2 ).untaint.to_sym
33
+ tag.inverted = true
34
+ end
35
+
36
+
37
+ ### Create a new IfTag.
38
+ def initialize( body, linenum=nil, colnum=nil )
39
+ @inverted = false
40
+ super
41
+ end
42
+
43
+ # Invert the tag's renderstate if created with the 'not' operator.
44
+ attr_accessor :inverted
45
+
22
46
 
23
47
  ### Render the tag's contents if the condition is true, or any else or elsif sections
24
48
  ### if the condition isn't true.
25
- def render( state )
49
+ def render( renderstate )
50
+
51
+ evaluated_state = self.evaluate( renderstate )
52
+ evaluated_state = ! evaluated_state if self.inverted
26
53
 
27
54
  # Start out with rendering enabled if the tag body evaluates trueishly
28
- if self.evaluate( state )
55
+ if evaluated_state
29
56
  self.log.debug "Initial state was TRUE; enabling rendering"
30
- state.enable_rendering
57
+ renderstate.enable_rendering
31
58
  else
32
59
  self.log.debug "Initial state was FALSE; disabling rendering"
33
- state.disable_rendering
60
+ renderstate.disable_rendering
34
61
  end
35
62
 
36
63
  # Set the tag state to track whether or not rendering has been enabled during the
37
64
  # 'if' for an 'else' or 'elsif' tag.
38
- state.with_tag_data( rendering_was_enabled: state.rendering_enabled? ) do
65
+ renderstate.with_tag_data( rendering_was_enabled: renderstate.rendering_enabled? ) do
39
66
  super
40
67
  end
41
68
 
42
- state.enable_rendering
69
+ renderstate.enable_rendering
43
70
  return nil
44
71
  end
45
72
 
@@ -20,14 +20,40 @@ require 'inversion/template/elsetag'
20
20
  class Inversion::Template::UnlessTag < Inversion::Template::AttrTag
21
21
  include Inversion::Template::ContainerTag
22
22
 
23
- # Inherits AttrTag's tag patterns
23
+ # Inherit AttrTag's tag patterns first.
24
+ inherit_tag_patterns
25
+
26
+ # Append a 'not' tag matcher.
27
+ # <?unless ! foo ?>, <?unless !foo ?>
28
+ tag_pattern '$(op) sp* $(ident)' do |tag, match|
29
+ op = match.string( 1 )
30
+ raise Inversion::ParseError, "expected '!', got %p instead" % [ op ] unless op == '!'
31
+
32
+ tag.send( :log ).debug " Identifier is: %p (inverted)" % [ match.string(2) ]
33
+ tag.name = match.string( 2 ).untaint.to_sym
34
+ tag.inverted = true
35
+ end
36
+
37
+
38
+ ### Create a new UnlessTag.
39
+ def initialize( body, linenum=nil, colnum=nil )
40
+ @inverted = false
41
+ super
42
+ end
43
+
44
+ # Invert the tag's renderstate if created with the 'not' operator.
45
+ attr_accessor :inverted
46
+
24
47
 
25
48
  ### Render the tag's contents if the condition is true, or any else or elsif sections
26
49
  ### if the condition isn't true.
27
50
  def render( state )
28
51
 
52
+ evaluated_state = self.evaluate( state )
53
+ evaluated_state = ! evaluated_state if self.inverted
54
+
29
55
  # Start out with rendering *disabled* if the tag body evaluates trueishly
30
- if self.evaluate( state )
56
+ if evaluated_state
31
57
  self.log.debug "Initial state was TRUE; disabling rendering"
32
58
  state.disable_rendering
33
59
  else
@@ -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
@@ -28,6 +28,46 @@ describe Inversion::Template::CodeTag do
28
28
  expect( subclass.tag_patterns.first[1].call(:dummy, :king_dummy) ).to eq( :foo )
29
29
  end
30
30
 
31
- end
32
31
 
32
+ it "can explicitly declare pattern inheritence" do
33
+ parentclass = Class.new( Inversion::Template::CodeTag ) do
34
+ tag_pattern "$(ident)" do |tag, match|
35
+ :foo
36
+ end
37
+ end
38
+
39
+ subclass = Class.new( parentclass ) do
40
+ inherit_tag_patterns
41
+ tag_pattern "$(op) $(ident)" do |tag, match|
42
+ :bar
43
+ end
44
+ end
45
+
46
+ expect( subclass.tag_patterns.size ).to eq( 2 )
47
+ expect( subclass.tag_patterns.first[0] ).
48
+ to be_an_instance_of( Inversion::Template::CodeTag::TokenPattern )
49
+ expect( subclass.tag_patterns.last[0] ).
50
+ to be_an_instance_of( Inversion::Template::CodeTag::TokenPattern )
51
+ expect( subclass.tag_patterns.first[1].call(:dummy, :king_dummy) ).to eq( :foo )
52
+ expect( subclass.tag_patterns.last[1].call(:dummy, :king_dummy) ).to eq( :bar )
53
+ end
54
+
55
+
56
+ it "throws an error if trying to inherit patterns after they are declared" do
57
+ parentclass = Class.new( Inversion::Template::CodeTag ) do
58
+ tag_pattern "$(ident)" do |tag, match|
59
+ :foo
60
+ end
61
+ end
62
+
63
+ expect {
64
+ Class.new( parentclass ) do
65
+ tag_pattern "$(op) $(ident)" do |tag, match|
66
+ :bar
67
+ end
68
+ inherit_tag_patterns
69
+ end
70
+ }.to raise_exception( ScriptError, /patterns already exist/i )
71
+ end
72
+ end
33
73
  end
@@ -58,6 +58,31 @@ describe Inversion::Template::ElsifTag do
58
58
  end
59
59
 
60
60
 
61
+ it "inverts its attribute with a ! operator" do
62
+ template = Inversion::Template.new( <<-END_TEMPLATE )
63
+ <?if thing ?>
64
+ Thing!
65
+ <?elsif ! otherthing ?>
66
+ Otherthing!
67
+ <?else ?>
68
+ Nope.
69
+ <?end?>
70
+ END_TEMPLATE
71
+
72
+ template.thing = true
73
+ template.otherthing = true
74
+ expect( template.render ).to include( "Thing!" )
75
+
76
+ template.thing = false
77
+ template.otherthing = false
78
+ expect( template.render ).to include( "Otherthing!" )
79
+
80
+ template.thing = false
81
+ template.otherthing = true
82
+ expect( template.render ).to include( "Nope." )
83
+ end
84
+
85
+
61
86
  it "renders as its attribute value if it's a simple attribute" do
62
87
  renderstate = Inversion::RenderState.new( :bar => :the_attribute_value )
63
88
  tag = Inversion::Template::ElsifTag.new( 'bar' )
@@ -47,6 +47,17 @@ describe Inversion::Template::IfTag do
47
47
  expect( renderstate.to_s ).to eq( '' )
48
48
  end
49
49
 
50
+ it "inverts its attribute with a ! operator" do
51
+ template = Inversion::Template.new( <<-END_TEMPLATE )
52
+ <?if ! thing ?>Yep.<?else?>Nope.<?end?>
53
+ END_TEMPLATE
54
+
55
+ template.thing = false
56
+ expect( template.render ).to include( "Yep." )
57
+ template.thing = true
58
+ expect( template.render ).to include( "Nope." )
59
+ end
60
+
50
61
  it "works inside an iterator (ticket #3)" do
51
62
  template = Inversion::Template.new( <<-END_TEMPLATE )
52
63
  <?for item in items ?>
@@ -46,6 +46,17 @@ describe Inversion::Template::UnlessTag do
46
46
  expect( renderstate.to_s ).to eq( '' )
47
47
  end
48
48
 
49
+ it "inverts its attribute with a ! operator" do
50
+ template = Inversion::Template.new( <<-END_TEMPLATE )
51
+ <?unless ! thing ?>Yep.<?else?>Nope.<?end?>
52
+ END_TEMPLATE
53
+
54
+ template.thing = false
55
+ expect( template.render ).to include( "Nope." )
56
+ template.thing = true
57
+ expect( template.render ).to include( "Yep." )
58
+ end
59
+
49
60
  context "with an 'else' clause" do
50
61
 
51
62
  before( :each ) do
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.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,32 +11,27 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MQwwCgYDVQQDDANnZWQx
15
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- cZ+lPcg834G9DrqW2zhqUoLr1MTly4pqxYGb7XoDhoR7dd1kFE2a067+DzWC/ADt
24
- +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
- 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
- /D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
27
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
14
+ MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQ8wDQYDVQQDDAZtYWhs
15
+ b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
16
+ HhcNMTYxMTE2MTkxMTMwWhcNMTcxMTE2MTkxMTMwWjA+MQ8wDQYDVQQDDAZtYWhs
17
+ b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
18
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpXGN0YbMVpYv4EoiCxpQw
19
+ sxKdyhlkvpvENUkpEhbpnEuMKXgUfRHO4T/vBZf0h8eYgwnrHCRhAeIqesFKfoj9
20
+ mpEJk5JUuADOAz18aT+v24UqAtJdiwBJLuqhslSNB6CFXZv3OOMny9bjoJegz0hI
21
+ Fht9ppCuNmxJNd+L3zAX8lD01RUWNRC+8L5QLCjViJtjFDDCFfh9NCirs+XnTCzo
22
+ AJgFbsZIzFJtSiXUtFgscKr4Ik8ruhRbPbYbmx9rf6W74aTMPxggq/d3gj0Eh32y
23
+ WsXsQ5giVnmkbsRkBNu3QyZ8Xr5+7mvy5AWyqXKOrcW7lnYaob6Z9x/MGXGNeD6j
24
+ AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRY8ea6
25
+ +6kAaW7ukKph2/4MTAD8/TAcBgNVHREEFTATgRFtYWhsb25AbWFydGluaS5udTAc
26
+ BgNVHRIEFTATgRFtYWhsb25AbWFydGluaS5udTANBgkqhkiG9w0BAQUFAAOCAQEA
27
+ MxBPdbmfh3dJN51visg0QilqtyPbqxyd8YVm9wbkcmi1D2Sv9deppFvZ+pXyR+eq
28
+ qy/efw4F+3DAPw+9QNlPJG8DHQ8HrYPrf7wv5DPBpyKLD1atMGnoDb5gijIx5IMR
29
+ MxiffPYQsT7Noimqaz8KWqP1keDY9aqVKe3iDXUXKBV27sl9GhOt5jJ3rVW9ihok
30
+ KiEoBnrgQcZIEAOwfXbWT4IaIcOCgD+JloEesuHL72/3zP/vOcqZf4SOcne4+qti
31
+ DHE5pl144V24tqxZb65WTup/ov22SCXmpU8/wTeZVL3rePGRfwTJNpm+6iYszl7A
32
+ SixmX0X3SOeYg4FRkblUIA==
38
33
  -----END CERTIFICATE-----
39
- date: 2017-01-16 00:00:00.000000000 Z
34
+ date: 2017-08-10 00:00:00.000000000 Z
40
35
  dependencies:
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: loggability
@@ -67,47 +62,33 @@ dependencies:
67
62
  - !ruby/object:Gem::Version
68
63
  version: '1.4'
69
64
  - !ruby/object:Gem::Dependency
70
- name: hoe-deveiate
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.8'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.8'
83
- - !ruby/object:Gem::Dependency
84
- name: hoe-highline
65
+ name: highline
85
66
  requirement: !ruby/object:Gem::Requirement
86
67
  requirements:
87
68
  - - "~>"
88
69
  - !ruby/object:Gem::Version
89
- version: '0.2'
70
+ version: '1.6'
90
71
  type: :development
91
72
  prerelease: false
92
73
  version_requirements: !ruby/object:Gem::Requirement
93
74
  requirements:
94
75
  - - "~>"
95
76
  - !ruby/object:Gem::Version
96
- version: '0.2'
77
+ version: '1.6'
97
78
  - !ruby/object:Gem::Dependency
98
- name: highline
79
+ name: hoe-deveiate
99
80
  requirement: !ruby/object:Gem::Requirement
100
81
  requirements:
101
82
  - - "~>"
102
83
  - !ruby/object:Gem::Version
103
- version: '1.6'
84
+ version: '0.5'
104
85
  type: :development
105
86
  prerelease: false
106
87
  version_requirements: !ruby/object:Gem::Requirement
107
88
  requirements:
108
89
  - - "~>"
109
90
  - !ruby/object:Gem::Version
110
- version: '1.6'
91
+ version: '0.5'
111
92
  - !ruby/object:Gem::Dependency
112
93
  name: rack-test
113
94
  requirement: !ruby/object:Gem::Requirement
@@ -268,7 +249,6 @@ extra_rdoc_files:
268
249
  - README.rdoc
269
250
  - Tags.rdoc
270
251
  files:
271
- - ChangeLog
272
252
  - Examples.rdoc
273
253
  - GettingStarted.rdoc
274
254
  - Guide.rdoc
@@ -377,7 +357,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
377
357
  version: '0'
378
358
  requirements: []
379
359
  rubyforge_project:
380
- rubygems_version: 2.6.8
360
+ rubygems_version: 2.5.2
381
361
  signing_key:
382
362
  specification_version: 4
383
363
  summary: Inversion is a templating system for Ruby