inversion 1.3.1 → 1.4.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/Examples.md +134 -0
- data/GettingStarted.md +50 -0
- data/Guide.md +14 -0
- data/{History.rdoc → History.md} +52 -43
- data/{README.rdoc → README.md} +43 -34
- data/Tags.md +555 -0
- data/bin/inversion +4 -8
- data/lib/inversion/cli/api.rb +75 -0
- data/lib/inversion/cli/tagtokens.rb +34 -0
- data/lib/inversion/cli/tree.rb +70 -0
- data/lib/inversion/cli.rb +406 -0
- data/lib/inversion/exceptions.rb +0 -1
- data/lib/inversion/mixins.rb +10 -11
- data/lib/inversion/parser.rb +5 -6
- data/lib/inversion/refinements.rb +18 -0
- data/lib/inversion/renderstate.rb +24 -25
- data/lib/inversion/sinatra.rb +0 -1
- data/lib/inversion/template/attrtag.rb +7 -5
- data/lib/inversion/template/begintag.rb +0 -1
- data/lib/inversion/template/calltag.rb +0 -1
- data/lib/inversion/template/codetag.rb +37 -28
- data/lib/inversion/template/commenttag.rb +0 -1
- data/lib/inversion/template/configtag.rb +3 -4
- data/lib/inversion/template/containertag.rb +1 -2
- data/lib/inversion/template/defaulttag.rb +1 -2
- data/lib/inversion/template/elsetag.rb +0 -1
- data/lib/inversion/template/elsiftag.rb +0 -1
- data/lib/inversion/template/endtag.rb +2 -3
- data/lib/inversion/template/escapetag.rb +1 -2
- data/lib/inversion/template/fortag.rb +2 -3
- data/lib/inversion/template/fragmenttag.rb +1 -2
- data/lib/inversion/template/iftag.rb +3 -1
- data/lib/inversion/template/importtag.rb +2 -3
- data/lib/inversion/template/includetag.rb +1 -2
- data/lib/inversion/template/node.rb +4 -5
- data/lib/inversion/template/pptag.rb +1 -2
- data/lib/inversion/template/publishtag.rb +2 -3
- data/lib/inversion/template/rescuetag.rb +1 -2
- data/lib/inversion/template/subscribetag.rb +3 -4
- data/lib/inversion/template/tag.rb +3 -4
- data/lib/inversion/template/textnode.rb +1 -2
- data/lib/inversion/template/timedeltatag.rb +1 -2
- data/lib/inversion/template/unlesstag.rb +0 -1
- data/lib/inversion/template/uriencodetag.rb +1 -2
- data/lib/inversion/template/yieldtag.rb +0 -1
- data/lib/inversion/template.rb +18 -22
- data/lib/inversion/tilt.rb +1 -2
- data/lib/inversion.rb +2 -3
- data/spec/helpers.rb +19 -13
- data/spec/inversion/mixins_spec.rb +1 -1
- data/spec/inversion/monkeypatches_spec.rb +1 -1
- data/spec/inversion/parser_spec.rb +1 -1
- data/spec/inversion/renderstate_spec.rb +1 -1
- data/spec/inversion/sinatra_spec.rb +1 -1
- data/spec/inversion/template/attrtag_spec.rb +1 -1
- data/spec/inversion/template/begintag_spec.rb +1 -1
- data/spec/inversion/template/calltag_spec.rb +1 -1
- data/spec/inversion/template/codetag_spec.rb +24 -1
- data/spec/inversion/template/commenttag_spec.rb +1 -1
- data/spec/inversion/template/configtag_spec.rb +1 -1
- data/spec/inversion/template/containertag_spec.rb +1 -1
- data/spec/inversion/template/defaulttag_spec.rb +1 -1
- data/spec/inversion/template/elsetag_spec.rb +1 -1
- data/spec/inversion/template/elsiftag_spec.rb +1 -1
- data/spec/inversion/template/endtag_spec.rb +1 -1
- data/spec/inversion/template/escapetag_spec.rb +1 -1
- data/spec/inversion/template/fortag_spec.rb +1 -1
- data/spec/inversion/template/fragmenttag_spec.rb +1 -1
- data/spec/inversion/template/iftag_spec.rb +1 -1
- data/spec/inversion/template/importtag_spec.rb +1 -1
- data/spec/inversion/template/includetag_spec.rb +1 -1
- data/spec/inversion/template/node_spec.rb +1 -1
- data/spec/inversion/template/pptag_spec.rb +1 -1
- data/spec/inversion/template/publishtag_spec.rb +1 -1
- data/spec/inversion/template/rescuetag_spec.rb +1 -1
- data/spec/inversion/template/subscribetag_spec.rb +1 -1
- data/spec/inversion/template/tag_spec.rb +1 -1
- data/spec/inversion/template/textnode_spec.rb +1 -1
- data/spec/inversion/template/timedeltatag_spec.rb +1 -1
- data/spec/inversion/template/unlesstag_spec.rb +1 -1
- data/spec/inversion/template/uriencodetag_spec.rb +1 -1
- data/spec/inversion/template/yieldtag_spec.rb +1 -1
- data/spec/inversion/template_spec.rb +1 -1
- data/spec/inversion/tilt_spec.rb +1 -1
- data/spec/inversion_spec.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +59 -45
- metadata.gz.sig +0 -0
- data/Examples.rdoc +0 -134
- data/GettingStarted.rdoc +0 -44
- data/Guide.rdoc +0 -47
- data/Manifest.txt +0 -86
- data/Rakefile +0 -7
- data/Tags.rdoc +0 -560
- data/lib/inversion/command.rb +0 -278
- data/lib/inversion/monkeypatches.rb +0 -21
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'inversion/template' unless defined?( Inversion::Template )
|
@@ -31,7 +30,7 @@ class Inversion::Template::PublishTag < Inversion::Template::Tag
|
|
31
30
|
include Inversion::Template::ContainerTag
|
32
31
|
|
33
32
|
|
34
|
-
### Create a new PublishTag with the given
|
33
|
+
### Create a new PublishTag with the given `body`.
|
35
34
|
def initialize( body, line=nil, column=nil )
|
36
35
|
super
|
37
36
|
|
@@ -50,7 +49,7 @@ class Inversion::Template::PublishTag < Inversion::Template::Tag
|
|
50
49
|
attr_reader :key
|
51
50
|
|
52
51
|
|
53
|
-
### Render the published subnodes in the context of the given
|
52
|
+
### Render the published subnodes in the context of the given `renderstate`, but
|
54
53
|
### save them for publication after the render is done.
|
55
54
|
def render( renderstate )
|
56
55
|
self.log.debug "Publishing %d nodes as %s" % [ self.subnodes.length, self.key ]
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'inversion/template' unless defined?( Inversion::Template )
|
@@ -72,7 +71,7 @@ class Inversion::Template::RescueTag < Inversion::Template::Tag
|
|
72
71
|
private
|
73
72
|
#######
|
74
73
|
|
75
|
-
### Parse one or more exception classes from the given
|
74
|
+
### Parse one or more exception classes from the given `rescuespec` and return them.
|
76
75
|
def parse_exception_types( rescuespec )
|
77
76
|
return [ ::RuntimeError ] if rescuespec.nil? || rescuespec == ''
|
78
77
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'inversion/template' unless defined?( Inversion::Template )
|
@@ -29,7 +28,7 @@ require 'inversion/template/tag'
|
|
29
28
|
#
|
30
29
|
class Inversion::Template::SubscribeTag < Inversion::Template::Tag
|
31
30
|
|
32
|
-
### Create a new SubscribeTag with the given
|
31
|
+
### Create a new SubscribeTag with the given `body`.
|
33
32
|
def initialize( body, line=nil, column=nil )
|
34
33
|
super
|
35
34
|
|
@@ -60,7 +59,7 @@ class Inversion::Template::SubscribeTag < Inversion::Template::Tag
|
|
60
59
|
attr_reader :content
|
61
60
|
|
62
61
|
|
63
|
-
### Tell the
|
62
|
+
### Tell the `renderstate` that this tag is interested in nodes that are published with
|
64
63
|
### its key.
|
65
64
|
def before_rendering( renderstate )
|
66
65
|
@content.clear
|
@@ -74,7 +73,7 @@ class Inversion::Template::SubscribeTag < Inversion::Template::Tag
|
|
74
73
|
end
|
75
74
|
|
76
75
|
|
77
|
-
### Pub/sub callback. Called from the RenderState when a PublishTag publishes
|
76
|
+
### Pub/sub callback. Called from the RenderState when a PublishTag publishes `nodes`
|
78
77
|
### with the same key as the current tag.
|
79
78
|
def publish( *nodes )
|
80
79
|
self.log.debug "Adding published nodes %p to %p" % [ nodes, @content ]
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'loggability'
|
@@ -105,7 +104,7 @@ class Inversion::Template::Tag < Inversion::Template::Node
|
|
105
104
|
end
|
106
105
|
|
107
106
|
|
108
|
-
### Safely load the specified
|
107
|
+
### Safely load the specified `tagfile`.
|
109
108
|
def self::load( tagfile )
|
110
109
|
tagrequire = tagfile[ %r{inversion/template/\w+tag} ] or
|
111
110
|
raise "tag file %p doesn't look like a tag plugin" % [ tagfile ]
|
@@ -118,7 +117,7 @@ class Inversion::Template::Tag < Inversion::Template::Node
|
|
118
117
|
end
|
119
118
|
|
120
119
|
|
121
|
-
### Create a new Inversion::Template::Tag from the specified
|
120
|
+
### Create a new Inversion::Template::Tag from the specified `tagname` and `body`.
|
122
121
|
def self::create( tagname, body, linenum=nil, colnum=nil )
|
123
122
|
tagname =~ /^(\w+)$/i or raise ArgumentError, "invalid tag name %p" % [ tagname ]
|
124
123
|
tagtype = $1.downcase
|
@@ -137,7 +136,7 @@ class Inversion::Template::Tag < Inversion::Template::Node
|
|
137
136
|
### I N S T A N C E M E T H O D S
|
138
137
|
########################################################################
|
139
138
|
|
140
|
-
### Create a new Inversion::Template::Tag with the specified
|
139
|
+
### Create a new Inversion::Template::Tag with the specified `body`.
|
141
140
|
def initialize( body, linenum=nil, colnum=nil )
|
142
141
|
super
|
143
142
|
@body = body.to_s.strip
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'inversion/template' unless defined?( Inversion::Template )
|
@@ -8,7 +7,7 @@ require 'inversion/template/node'
|
|
8
7
|
# Inversion text node class -- container for static content in templates between tags.
|
9
8
|
class Inversion::Template::TextNode < Inversion::Template::Node
|
10
9
|
|
11
|
-
### Create a new TextNode with the specified
|
10
|
+
### Create a new TextNode with the specified `source`.
|
12
11
|
def initialize( body, linenum=nil, colnum=nil )
|
13
12
|
@body = body
|
14
13
|
super
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'uri'
|
@@ -74,7 +73,7 @@ class Inversion::Template::TimeDeltaTag < Inversion::Template::AttrTag
|
|
74
73
|
private
|
75
74
|
#######
|
76
75
|
|
77
|
-
### Return a string describing
|
76
|
+
### Return a string describing `seconds` as an approximate interval of time.
|
78
77
|
def timeperiod( seconds )
|
79
78
|
return case
|
80
79
|
when seconds < MINUTES - 5
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'uri'
|
@@ -19,7 +18,7 @@ class Inversion::Template::UriencodeTag < Inversion::Template::AttrTag
|
|
19
18
|
include Inversion::Escaping
|
20
19
|
|
21
20
|
|
22
|
-
### Render the method chains against the attributes of the specified
|
21
|
+
### Render the method chains against the attributes of the specified `render_state`
|
23
22
|
### and return them.
|
24
23
|
def render( render_state )
|
25
24
|
raw = super
|
data/lib/inversion/template.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'loggability'
|
@@ -28,23 +27,23 @@ end
|
|
28
27
|
#
|
29
28
|
# == Template Options
|
30
29
|
#
|
31
|
-
# Inversion supports the
|
32
|
-
# API, and registers itself with the
|
33
|
-
# a
|
30
|
+
# Inversion supports the [Configurability](http://rubygems.org/gems/configurability)
|
31
|
+
# API, and registers itself with the `templates` key. This means you can either add
|
32
|
+
# a `templates` section to your Configurability config, or call
|
34
33
|
# ::configure yourself with a config Hash (or something that quacks like one).
|
35
34
|
#
|
36
35
|
# To set options on a per-template basis, you can pass an options hash to either
|
37
36
|
# Inversion::Template::load or Inversion::Template::new, or set them from within the template
|
38
|
-
# itself using the
|
37
|
+
# itself using the [config tag](rdoc-ref:Tags@config).
|
39
38
|
#
|
40
39
|
# The available options are:
|
41
40
|
#
|
42
41
|
# [:ignore_unknown_tags]
|
43
42
|
# Setting to false causes unknown tags used in templates to raise an
|
44
|
-
# Inversion::ParseError. Defaults to
|
43
|
+
# Inversion::ParseError. Defaults to `true`.
|
45
44
|
#
|
46
45
|
# [:on_render_error]
|
47
|
-
# Dictates the behavior of exceptions during rendering. Defaults to
|
46
|
+
# Dictates the behavior of exceptions during rendering. Defaults to `:comment`.
|
48
47
|
#
|
49
48
|
# [:ignore]
|
50
49
|
# Exceptions are silently ignored.
|
@@ -55,7 +54,7 @@ end
|
|
55
54
|
#
|
56
55
|
#
|
57
56
|
# [:debugging_comments]
|
58
|
-
# Insert various Inversion parse and render statements while rendering. Defaults to
|
57
|
+
# Insert various Inversion parse and render statements while rendering. Defaults to `false`.
|
59
58
|
#
|
60
59
|
# [:comment_start]
|
61
60
|
# When rendering debugging comments, the comment is started with these characters.
|
@@ -71,16 +70,16 @@ end
|
|
71
70
|
# last checked member of this. Defaults to <code>[]</code>.
|
72
71
|
#
|
73
72
|
# [:escape_format]
|
74
|
-
# The escaping used by tags such as
|
73
|
+
# The escaping used by tags such as `escape` and `pp`. Default: `:html`.
|
75
74
|
#
|
76
75
|
# [:strip_tag_lines]
|
77
76
|
# If a tag's presence introduces a blank line into the output, this option
|
78
|
-
# removes it. Defaults to
|
77
|
+
# removes it. Defaults to `true`.
|
79
78
|
#
|
80
79
|
# [:stat_delay]
|
81
80
|
# Templates know when they've been altered on disk, and can dynamically
|
82
81
|
# reload themselves in long running applications. Setting this option creates
|
83
|
-
# a purposeful delay between reloads for busy servers. Defaults to
|
82
|
+
# a purposeful delay between reloads for busy servers. Defaults to `0`
|
84
83
|
# (disabled).
|
85
84
|
#
|
86
85
|
# [:strict_attributes]
|
@@ -111,9 +110,6 @@ class Inversion::Template
|
|
111
110
|
require 'inversion/template/tag'
|
112
111
|
require 'inversion/renderstate'
|
113
112
|
|
114
|
-
# Alias to maintain backward compatibility with <0.2.0 code
|
115
|
-
Parser = Inversion::Parser
|
116
|
-
|
117
113
|
# Valid actions for 'on_render_error'
|
118
114
|
VALID_ERROR_ACTIONS = [
|
119
115
|
:ignore,
|
@@ -165,7 +161,7 @@ class Inversion::Template
|
|
165
161
|
end
|
166
162
|
|
167
163
|
|
168
|
-
### Read a template object from the specified
|
164
|
+
### Read a template object from the specified `path`.
|
169
165
|
def self::load( path, parsestate=nil, opts={} )
|
170
166
|
|
171
167
|
# Shift the options hash over if there isn't a parse state
|
@@ -210,10 +206,10 @@ class Inversion::Template
|
|
210
206
|
end
|
211
207
|
|
212
208
|
|
213
|
-
### Add one or more extension
|
209
|
+
### Add one or more extension `modules` to Inversion::Template. This allows tags to decorate
|
214
210
|
### the template class with new functionality.
|
215
211
|
###
|
216
|
-
### Each one of the given
|
212
|
+
### Each one of the given `modules` will be included as a mixin, and if it also
|
217
213
|
### contains a constant called ClassMethods and/or PrependedMethods, it will
|
218
214
|
### also be extended/prepended (respectively) with it.
|
219
215
|
###
|
@@ -260,7 +256,7 @@ class Inversion::Template
|
|
260
256
|
end
|
261
257
|
|
262
258
|
|
263
|
-
### Create a new Inversion:Template with the given
|
259
|
+
### Create a new Inversion:Template with the given `source`.
|
264
260
|
def initialize( source, parsestate=nil, opts={} )
|
265
261
|
if parsestate.is_a?( Hash )
|
266
262
|
# self.log.debug "Shifting template options: %p" % [ parsestate ]
|
@@ -325,7 +321,7 @@ class Inversion::Template
|
|
325
321
|
end
|
326
322
|
|
327
323
|
|
328
|
-
### Returns
|
324
|
+
### Returns `true` if the template was loaded from a file and the file's mtime
|
329
325
|
### is after the time the template was created.
|
330
326
|
def changed?
|
331
327
|
return false unless file = self.source_file
|
@@ -408,7 +404,7 @@ class Inversion::Template
|
|
408
404
|
end
|
409
405
|
|
410
406
|
|
411
|
-
### Parse the given
|
407
|
+
### Parse the given `source` into the template node tree.
|
412
408
|
def parse( source, parsestate=nil )
|
413
409
|
opts = self.class.config.merge( self.options )
|
414
410
|
parser = Inversion::Parser.new( self, opts )
|
@@ -442,7 +438,7 @@ class Inversion::Template
|
|
442
438
|
end
|
443
439
|
|
444
440
|
|
445
|
-
### Add attributes for the given
|
441
|
+
### Add attributes for the given `node`'s identifiers.
|
446
442
|
def add_attributes_from_node( node )
|
447
443
|
if node.respond_to?( :identifiers )
|
448
444
|
node.identifiers.each do |id|
|
@@ -453,7 +449,7 @@ class Inversion::Template
|
|
453
449
|
end
|
454
450
|
|
455
451
|
|
456
|
-
### Install reader and writer methods for the attribute associated with the specified
|
452
|
+
### Install reader and writer methods for the attribute associated with the specified `key`.
|
457
453
|
def install_accessors( key )
|
458
454
|
reader, writer = self.make_attribute_accessors( key )
|
459
455
|
|
data/lib/inversion/tilt.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'tilt'
|
@@ -36,7 +35,7 @@ if defined?( ::Tilt )
|
|
36
35
|
self.evaluate( *args )
|
37
36
|
end
|
38
37
|
|
39
|
-
### Tilt::Template API: render the template with the given
|
38
|
+
### Tilt::Template API: render the template with the given `scope`, `locals`, and `block`.
|
40
39
|
def evaluate( scope, locals, &block )
|
41
40
|
@template.attributes.merge!( scope.to_h ) if scope.respond_to?( :to_h )
|
42
41
|
@template.attributes.merge!( locals )
|
data/lib/inversion.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
2
|
# vim: set noet nosta sw=4 ts=4 :
|
4
3
|
|
5
4
|
require 'loggability'
|
@@ -26,7 +25,7 @@ module Inversion
|
|
26
25
|
warn ">>> Inversion requires Ruby 2.4.0 or later. <<<" if RUBY_VERSION < '2.4.0'
|
27
26
|
|
28
27
|
# Library version constant
|
29
|
-
VERSION = '1.
|
28
|
+
VERSION = '1.4.0'
|
30
29
|
|
31
30
|
# Version-control revision constant
|
32
31
|
REVISION = %q$Revision$
|
@@ -40,8 +39,8 @@ module Inversion
|
|
40
39
|
end
|
41
40
|
|
42
41
|
require 'inversion/exceptions'
|
42
|
+
require 'inversion/refinements'
|
43
43
|
require 'inversion/mixins'
|
44
|
-
require 'inversion/monkeypatches'
|
45
44
|
require 'inversion/template'
|
46
45
|
|
47
46
|
end # module Inversion
|
data/spec/helpers.rb
CHANGED
@@ -11,7 +11,7 @@ require 'loggability/spechelpers'
|
|
11
11
|
|
12
12
|
require 'inversion'
|
13
13
|
|
14
|
-
Inversion::Template::Tag.load_all
|
14
|
+
# Inversion::Template::Tag.load_all
|
15
15
|
|
16
16
|
|
17
17
|
### RSpec helper functions.
|
@@ -21,14 +21,14 @@ module Inversion::SpecHelpers
|
|
21
21
|
module_function
|
22
22
|
###############
|
23
23
|
|
24
|
-
### Make an easily-comparable version vector out of
|
24
|
+
### Make an easily-comparable version vector out of `ver` and return it.
|
25
25
|
def vvec( ver )
|
26
26
|
return ver.split('.').collect {|char| char.to_i }.pack('N*')
|
27
27
|
end
|
28
28
|
|
29
29
|
|
30
|
-
### Create a string containing an XML Processing Instruction with the given
|
31
|
-
### and
|
30
|
+
### Create a string containing an XML Processing Instruction with the given `name`
|
31
|
+
### and `data`.
|
32
32
|
def create_pi( name, data )
|
33
33
|
return "<?#{name} #{data} ?>"
|
34
34
|
end
|
@@ -37,19 +37,25 @@ end
|
|
37
37
|
|
38
38
|
|
39
39
|
### Mock with RSpec
|
40
|
-
RSpec.configure do |
|
40
|
+
RSpec.configure do |config|
|
41
41
|
|
42
|
-
|
43
|
-
c.filter_run :focus
|
44
|
-
c.order = 'random'
|
45
|
-
c.mock_with( :rspec ) do |mock|
|
42
|
+
config.mock_with( :rspec ) do |mock|
|
46
43
|
mock.syntax = :expect
|
47
44
|
end
|
48
|
-
c.wait_timeout = 3
|
49
|
-
c.example_status_persistence_file_path = 'spec/.state'
|
50
45
|
|
51
|
-
|
52
|
-
|
46
|
+
config.disable_monkey_patching!
|
47
|
+
config.example_status_persistence_file_path = "spec/.status"
|
48
|
+
config.filter_run :focus
|
49
|
+
config.filter_run_when_matching :focus
|
50
|
+
config.order = :random
|
51
|
+
config.profile_examples = 5
|
52
|
+
config.run_all_when_everything_filtered = true
|
53
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
54
|
+
config.wait_timeout = 3
|
55
|
+
# config.warnings = true
|
56
|
+
|
57
|
+
config.include( Inversion::SpecHelpers )
|
58
|
+
config.include( Loggability::SpecHelpers )
|
53
59
|
end
|
54
60
|
|
55
61
|
# vim: set nosta noet ts=4 sw=4:
|
@@ -11,7 +11,7 @@ require 'inversion/template/fragmenttag'
|
|
11
11
|
require 'inversion/template/subscribetag'
|
12
12
|
require 'inversion/template/publishtag'
|
13
13
|
|
14
|
-
describe Inversion::RenderState do
|
14
|
+
RSpec.describe Inversion::RenderState do
|
15
15
|
|
16
16
|
|
17
17
|
it "provides access to the block it was constructed with if there was one" do
|
@@ -13,7 +13,7 @@ rescue LoadError => err
|
|
13
13
|
$sinatra_support = false
|
14
14
|
end
|
15
15
|
|
16
|
-
describe "Sinatra support", :if => $sinatra_support do
|
16
|
+
RSpec.describe "Sinatra support", :if => $sinatra_support do
|
17
17
|
include Rack::Test::Methods if defined?( ::Rack )
|
18
18
|
|
19
19
|
before( :each ) do
|
@@ -11,7 +11,7 @@ require 'inversion/template/rescuetag'
|
|
11
11
|
require 'inversion/template/endtag'
|
12
12
|
require 'inversion/renderstate'
|
13
13
|
|
14
|
-
describe Inversion::Template::BeginTag do
|
14
|
+
RSpec.describe Inversion::Template::BeginTag do
|
15
15
|
|
16
16
|
|
17
17
|
context "without any rescue clauses" do
|
@@ -5,7 +5,7 @@ require_relative '../../helpers'
|
|
5
5
|
|
6
6
|
require 'inversion/template/codetag'
|
7
7
|
|
8
|
-
describe Inversion::Template::CodeTag do
|
8
|
+
RSpec.describe Inversion::Template::CodeTag do
|
9
9
|
|
10
10
|
|
11
11
|
it "is an abstract class" do
|
@@ -70,4 +70,27 @@ describe Inversion::Template::CodeTag do
|
|
70
70
|
}.to raise_exception( ScriptError, /patterns already exist/i )
|
71
71
|
end
|
72
72
|
end
|
73
|
+
|
74
|
+
|
75
|
+
it "throws an error if trying to declare a tag pattern with an invalid character" do
|
76
|
+
expect {
|
77
|
+
Class.new( described_class ) do
|
78
|
+
tag_pattern "°°°" do |tag, match|
|
79
|
+
:foo
|
80
|
+
end
|
81
|
+
end
|
82
|
+
}.to raise_error( Ripper::TokenPattern::CompileError, /invalid char/i )
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
it "throws an error if given an invalid tag pattern" do
|
87
|
+
expect {
|
88
|
+
Class.new( described_class ) do
|
89
|
+
tag_pattern "$(ident)$(" do |tag, match|
|
90
|
+
:foo
|
91
|
+
end
|
92
|
+
end
|
93
|
+
}.to raise_error( Ripper::TokenPattern::CompileError, /unmatched paren/i )
|
94
|
+
end
|
95
|
+
|
73
96
|
end
|
@@ -8,7 +8,7 @@ require 'inversion/template/attrtag'
|
|
8
8
|
require 'inversion/template/textnode'
|
9
9
|
require 'inversion/renderstate'
|
10
10
|
|
11
|
-
describe Inversion::Template::CommentTag do
|
11
|
+
RSpec.describe Inversion::Template::CommentTag do
|
12
12
|
|
13
13
|
it "allows any free-form text in its body" do
|
14
14
|
# <?comment Disabled for now ?>...<?end?>
|
@@ -10,7 +10,7 @@ require 'inversion/template/commenttag'
|
|
10
10
|
require 'inversion/template/fortag'
|
11
11
|
require 'inversion/renderstate'
|
12
12
|
|
13
|
-
describe Inversion::Template::ElseTag do
|
13
|
+
RSpec.describe Inversion::Template::ElseTag do
|
14
14
|
|
15
15
|
it "handles a non-existant body" do
|
16
16
|
Inversion::Template::ElseTag.new( nil )
|
@@ -8,7 +8,7 @@ require 'inversion/template/textnode'
|
|
8
8
|
require 'inversion/template/endtag'
|
9
9
|
require 'inversion/renderstate'
|
10
10
|
|
11
|
-
describe Inversion::Template::EndTag do
|
11
|
+
RSpec.describe Inversion::Template::EndTag do
|
12
12
|
|
13
13
|
before( :each ) do
|
14
14
|
@tag = Inversion::Template::EndTag.new
|
@@ -9,7 +9,7 @@ require 'inversion/template/attrtag'
|
|
9
9
|
require 'inversion/template/textnode'
|
10
10
|
require 'inversion/renderstate'
|
11
11
|
|
12
|
-
describe Inversion::Template::ForTag do
|
12
|
+
RSpec.describe Inversion::Template::ForTag do
|
13
13
|
|
14
14
|
it "knows which identifiers should be added to the template" do
|
15
15
|
tag = Inversion::Template::ForTag.new( 'foo in bar' )
|
@@ -8,7 +8,7 @@ require 'inversion/template/attrtag'
|
|
8
8
|
require 'inversion/template/textnode'
|
9
9
|
require 'inversion/renderstate'
|
10
10
|
|
11
|
-
describe Inversion::Template::FragmentTag do
|
11
|
+
RSpec.describe Inversion::Template::FragmentTag do
|
12
12
|
|
13
13
|
it "raises a parse error if the body isn't a simple attribute" do
|
14
14
|
expect {
|
@@ -5,7 +5,7 @@ require_relative '../../helpers'
|
|
5
5
|
|
6
6
|
require 'inversion/template/importtag'
|
7
7
|
|
8
|
-
describe Inversion::Template::ImportTag do
|
8
|
+
RSpec.describe Inversion::Template::ImportTag do
|
9
9
|
|
10
10
|
it "can import a single attribute" do
|
11
11
|
tag = Inversion::Template::ImportTag.new( 'txn ' )
|
@@ -7,7 +7,7 @@ require 'timeout'
|
|
7
7
|
require 'inversion/template'
|
8
8
|
require 'inversion/template/includetag'
|
9
9
|
|
10
|
-
describe Inversion::Template::IncludeTag do
|
10
|
+
RSpec.describe Inversion::Template::IncludeTag do
|
11
11
|
|
12
12
|
it "renders the IncludeTag as an empty string" do
|
13
13
|
included_path = Pathname.pwd + 'included.tmpl'
|