shortcode 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/Gemfile.lock +41 -0
- data/README.md +46 -16
- data/lib/shortcode/configuration.rb +4 -0
- data/lib/shortcode/parser.rb +1 -1
- data/lib/shortcode/presenter.rb +3 -2
- data/lib/shortcode/processor.rb +17 -0
- data/lib/shortcode/tag.rb +2 -2
- data/lib/shortcode/transformer.rb +3 -2
- data/lib/shortcode/version.rb +1 -1
- data/lib/shortcode.rb +14 -14
- data/shortcode.gemspec +1 -1
- data/spec/parser_spec.rb +16 -0
- data/spec/performance_spec.rb +1 -1
- data/spec/presenter_spec.rb +14 -8
- data/spec/support/fixtures/simple_quote_presenter_attributes_output.html +6 -0
- data/spec/transformer_spec.rb +9 -9
- metadata +8 -4
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
shortcode (0.1.2)
|
5
|
+
haml (~> 4.0)
|
6
|
+
parslet (= 1.6.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (1.0.0.beta3)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
blankslate (2.1.2.4)
|
16
|
+
diff-lcs (1.2.4)
|
17
|
+
haml (4.0.5)
|
18
|
+
tilt
|
19
|
+
parslet (1.6.0)
|
20
|
+
blankslate (~> 2.0)
|
21
|
+
rake (10.1.0)
|
22
|
+
rspec (2.14.1)
|
23
|
+
rspec-core (~> 2.14.0)
|
24
|
+
rspec-expectations (~> 2.14.0)
|
25
|
+
rspec-mocks (~> 2.14.0)
|
26
|
+
rspec-core (2.14.4)
|
27
|
+
rspec-expectations (2.14.0)
|
28
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
29
|
+
rspec-mocks (2.14.1)
|
30
|
+
thor (0.18.1)
|
31
|
+
tilt (2.0.1)
|
32
|
+
|
33
|
+
PLATFORMS
|
34
|
+
ruby
|
35
|
+
|
36
|
+
DEPENDENCIES
|
37
|
+
appraisal (= 1.0.0.beta3)
|
38
|
+
bundler (~> 1.3)
|
39
|
+
rake
|
40
|
+
rspec
|
41
|
+
shortcode!
|
data/README.md
CHANGED
@@ -28,23 +28,12 @@ $ gem install shortcode
|
|
28
28
|
|
29
29
|
### Example
|
30
30
|
|
31
|
-
Shortcode
|
32
|
-
|
33
|
-
The shorthand wraps up the above code into a single method call for convenience
|
31
|
+
Shortcode is very simple to use, simply call the `process` method and pass it a string containing shortcode markup.
|
34
32
|
|
35
33
|
```ruby
|
36
34
|
Shortcode.process("[quote]Hello World[/quote]")
|
37
35
|
```
|
38
36
|
|
39
|
-
The longer form is good if you want to work with the intemediary hash returned by the parser
|
40
|
-
|
41
|
-
```ruby
|
42
|
-
parser = Shortcode::Parser.new
|
43
|
-
transformer = Shortcode::Transformer.new
|
44
|
-
parsed_hash = parser.parse("[quote]Hello World[/quote]")
|
45
|
-
transformer.apply(parsed_hash)
|
46
|
-
```
|
47
|
-
|
48
37
|
### Configuration
|
49
38
|
|
50
39
|
```ruby
|
@@ -61,6 +50,9 @@ Shortcode.setup do |config|
|
|
61
50
|
|
62
51
|
# a list of self closing tags to support e.g. [youtube id="12345"]
|
63
52
|
config.self_closing_tags = [:youtube]
|
53
|
+
|
54
|
+
# the type of quotes to use for attribute values, default is double quotes (")
|
55
|
+
config.quotes = '"'
|
64
56
|
end
|
65
57
|
```
|
66
58
|
|
@@ -96,20 +88,21 @@ Three templates would be required to support the above content, `[:collapsible_l
|
|
96
88
|
|
97
89
|
### Presenters
|
98
90
|
|
99
|
-
Sometimes the data passed to the template from the shortcode it not enough. Lets say you want to render a gallery of images using id numbers of images stored in a database, e.g. `[gallery ids="1,2,3,4"]`. This is where presenters can help, they allow you to modify the `@content` and `@attributes` variables before they are sent to the template for rendering. Presenters are simple classes that define four methods. The class method `for` should return the name of the shortcode (as a symbol) it should be applied to. The classes `initialize` method received the `attributes` and `
|
91
|
+
Sometimes the data passed to the template from the shortcode it not enough. Lets say you want to render a gallery of images using id numbers of images stored in a database, e.g. `[gallery ids="1,2,3,4"]`. This is where presenters can help, they allow you to modify the `@content` and `@attributes` variables before they are sent to the template for rendering. Presenters are simple classes that define four methods. The class method `for` should return the name of the shortcode (as a symbol) it should be applied to. The classes `initialize` method received the `attributes`, `content` and `additional_attributes` variables. Finally the class should define `content` and `attributes` methods.
|
100
92
|
|
101
93
|
In a rails app you could return image records to the template using something like this:
|
102
94
|
|
103
95
|
```ruby
|
104
|
-
class
|
96
|
+
class GalleryPresenter
|
105
97
|
|
106
98
|
def self.for
|
107
|
-
:
|
99
|
+
:gallery
|
108
100
|
end
|
109
101
|
|
110
|
-
def initialize(attributes, content)
|
102
|
+
def initialize(attributes, content, additional_attributes)
|
111
103
|
@attributes = attributes
|
112
104
|
@content = content
|
105
|
+
@additional_attributes = additional_attributes
|
113
106
|
end
|
114
107
|
|
115
108
|
def content
|
@@ -128,6 +121,43 @@ class CustomPresenter
|
|
128
121
|
end
|
129
122
|
```
|
130
123
|
|
124
|
+
#### Using additional attributes
|
125
|
+
|
126
|
+
At times you may want to pass through additional attributes to a presenter, for instance if you have a [gallery] shortcode tag and you want to pull out all images for a post, this can be achived using additional attributes with a presenter.
|
127
|
+
|
128
|
+
```ruby
|
129
|
+
class GalleryPresenter
|
130
|
+
|
131
|
+
def self.for
|
132
|
+
:gallery
|
133
|
+
end
|
134
|
+
|
135
|
+
def initialize(attributes, content, additional_attributes)
|
136
|
+
@attributes = attributes
|
137
|
+
@content = content
|
138
|
+
@additional_attributes = additional_attributes
|
139
|
+
end
|
140
|
+
|
141
|
+
def content
|
142
|
+
@content
|
143
|
+
end
|
144
|
+
|
145
|
+
def attributes
|
146
|
+
{ images: images }
|
147
|
+
end
|
148
|
+
|
149
|
+
private
|
150
|
+
|
151
|
+
def images
|
152
|
+
@additional_attributes[:images].map &:url
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
# The hash containing the images attribute is passed through to the presenter as the additional_attributes argument
|
157
|
+
Shortcode.process('[gallery]', { images: @post.images })
|
158
|
+
|
159
|
+
```
|
160
|
+
|
131
161
|
#### Registering presenters
|
132
162
|
|
133
163
|
To register a presenter simply call `Shortcode.register_presenter` passing the presenter class e.g.
|
@@ -11,10 +11,14 @@ class Shortcode::Configuration
|
|
11
11
|
# Set the supported self_closing_tags
|
12
12
|
attr_accessor :self_closing_tags
|
13
13
|
|
14
|
+
# Set the quotation sign used for attribute values. Defaults to double quote (")
|
15
|
+
attr_accessor :quotes
|
16
|
+
|
14
17
|
def initialize
|
15
18
|
@template_parser = :haml
|
16
19
|
@template_path = "app/views/shortcode_templates"
|
17
20
|
@block_tags = []
|
18
21
|
@self_closing_tags = []
|
22
|
+
@quotes = '"'
|
19
23
|
end
|
20
24
|
end
|
data/lib/shortcode/parser.rb
CHANGED
@@ -3,7 +3,7 @@ class Shortcode::Parser < Parslet::Parser
|
|
3
3
|
rule(:block_tag) { match_any_of Shortcode.configuration.block_tags }
|
4
4
|
rule(:self_closing_tag) { match_any_of Shortcode.configuration.self_closing_tags }
|
5
5
|
|
6
|
-
rule(:quotes) { str(
|
6
|
+
rule(:quotes) { str(Shortcode.configuration.quotes) }
|
7
7
|
|
8
8
|
rule(:space) { str(' ').repeat(1) }
|
9
9
|
rule(:space?) { space.maybe }
|
data/lib/shortcode/presenter.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
class Shortcode::Presenter
|
2
2
|
|
3
|
-
def initialize(name, attributes, content)
|
3
|
+
def initialize(name, attributes, content, additional_attributes)
|
4
4
|
@attributes = attributes
|
5
5
|
@content = content
|
6
|
+
@additional_attributes = additional_attributes
|
6
7
|
initialize_custom_presenter(name)
|
7
8
|
end
|
8
9
|
|
@@ -18,7 +19,7 @@ class Shortcode::Presenter
|
|
18
19
|
|
19
20
|
def initialize_custom_presenter(name)
|
20
21
|
if Shortcode.presenters.has_key? name.to_sym
|
21
|
-
presenter = Shortcode.presenters[name.to_sym].new(@attributes, @content)
|
22
|
+
presenter = Shortcode.presenters[name.to_sym].new(@attributes, @content, @additional_attributes)
|
22
23
|
@attributes = presenter.attributes
|
23
24
|
@content = presenter.content
|
24
25
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Shortcode::Processor
|
2
|
+
|
3
|
+
def process(string, additional_attributes=nil)
|
4
|
+
transformer.apply parser.parse(string), additional_attributes: additional_attributes
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def parser
|
10
|
+
@parser ||= Shortcode::Parser.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def transformer
|
14
|
+
@transformer ||= Shortcode::Transformer.new
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/lib/shortcode/tag.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
class Shortcode::Tag
|
2
2
|
|
3
|
-
def initialize(name, attributes=[], content='')
|
3
|
+
def initialize(name, attributes=[], content='', additional_attributes=nil)
|
4
4
|
@name = name.downcase
|
5
|
-
presenter = Shortcode::Presenter.new name, set_attributes(attributes), content
|
5
|
+
presenter = Shortcode::Presenter.new name, set_attributes(attributes), content, additional_attributes
|
6
6
|
@attributes = presenter.attributes
|
7
7
|
@content = presenter.content
|
8
8
|
end
|
@@ -6,11 +6,12 @@ class Shortcode::Transformer < Parslet::Transform
|
|
6
6
|
options: subtree(:options),
|
7
7
|
inner: sequence(:inner),
|
8
8
|
close: simple(:name)
|
9
|
-
) { Shortcode::Tag.new(name.to_s, options, inner.join).render }
|
9
|
+
) { Shortcode::Tag.new(name.to_s, options, inner.join, additional_attributes).render }
|
10
10
|
rule(
|
11
11
|
open_close: simple(:name),
|
12
12
|
options: subtree(:options)
|
13
|
-
) { Shortcode::Tag.new(name.to_s, options).render }
|
13
|
+
) { Shortcode::Tag.new(name.to_s, options, '', additional_attributes).render }
|
14
14
|
|
15
15
|
rule(body: sequence(:strings)) { strings.join }
|
16
|
+
|
16
17
|
end
|
data/lib/shortcode/version.rb
CHANGED
data/lib/shortcode.rb
CHANGED
@@ -3,32 +3,31 @@ require 'haml'
|
|
3
3
|
require 'erb'
|
4
4
|
|
5
5
|
module Shortcode
|
6
|
-
extend self
|
7
6
|
|
8
|
-
|
9
|
-
|
7
|
+
class << self
|
8
|
+
attr_writer :configuration, :presenters
|
9
|
+
end
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
yield configuration
|
11
|
+
def self.process(string, additional_attributes=nil)
|
12
|
+
Shortcode::Processor.new.process string, additional_attributes
|
14
13
|
end
|
15
14
|
|
16
|
-
def
|
17
|
-
|
15
|
+
def self.setup
|
16
|
+
yield configuration
|
18
17
|
end
|
19
18
|
|
20
|
-
def register_presenter(presenter)
|
21
|
-
|
19
|
+
def self.register_presenter(presenter)
|
20
|
+
presenters[presenter.for.to_sym] = presenter
|
22
21
|
end
|
23
22
|
|
24
23
|
private
|
25
24
|
|
26
|
-
def
|
27
|
-
|
25
|
+
def self.presenters
|
26
|
+
@presenters ||= {}
|
28
27
|
end
|
29
28
|
|
30
|
-
def
|
31
|
-
|
29
|
+
def self.configuration
|
30
|
+
@configuration ||= Configuration.new
|
32
31
|
end
|
33
32
|
|
34
33
|
end
|
@@ -37,6 +36,7 @@ require 'shortcode/version'
|
|
37
36
|
require 'shortcode/configuration'
|
38
37
|
require 'shortcode/parser'
|
39
38
|
require 'shortcode/presenter'
|
39
|
+
require 'shortcode/processor'
|
40
40
|
require 'shortcode/transformer'
|
41
41
|
require 'shortcode/tag'
|
42
42
|
require 'shortcode/exceptions'
|
data/shortcode.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "parslet", "1.
|
21
|
+
spec.add_dependency "parslet", "1.6.0"
|
22
22
|
spec.add_dependency "haml", "~> 4.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
data/spec/parser_spec.rb
CHANGED
@@ -25,6 +25,22 @@ describe Shortcode::Parser do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
it "parses quotes using custom quotations" do
|
29
|
+
Shortcode.setup do |config|
|
30
|
+
config.quotes = "'"
|
31
|
+
end
|
32
|
+
|
33
|
+
quotes.each do |string|
|
34
|
+
# Change double quotes to single quotes in the fixture
|
35
|
+
parser.should parse(string.gsub '"', "'")
|
36
|
+
end
|
37
|
+
|
38
|
+
# Reset configuration to default
|
39
|
+
Shortcode.setup do |config|
|
40
|
+
config.quotes = '"'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
28
44
|
it "parses list shortcodes" do
|
29
45
|
collapsible_lists.each do |string|
|
30
46
|
parser.should parse(string)
|
data/spec/performance_spec.rb
CHANGED
data/spec/presenter_spec.rb
CHANGED
@@ -2,15 +2,16 @@ require 'spec_helper'
|
|
2
2
|
require 'parslet/rig/rspec'
|
3
3
|
require 'pp'
|
4
4
|
|
5
|
-
class
|
5
|
+
class MyPresenter
|
6
6
|
|
7
7
|
def self.for
|
8
8
|
:quote
|
9
9
|
end
|
10
10
|
|
11
|
-
def initialize(attributes, content)
|
11
|
+
def initialize(attributes, content, additional_attributes)
|
12
12
|
@attributes = attributes
|
13
13
|
@content = content
|
14
|
+
@additional_attributes = additional_attributes
|
14
15
|
end
|
15
16
|
|
16
17
|
def content
|
@@ -18,23 +19,28 @@ class MyPrsenter
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def attributes
|
21
|
-
{ title: "my custom title" }
|
22
|
+
@additional_attributes || { title: "my custom title" }
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
26
|
describe Shortcode::Presenter do
|
26
27
|
|
27
|
-
let(:simple_quote)
|
28
|
-
let(:
|
28
|
+
let(:simple_quote) { load_fixture :simple_quote }
|
29
|
+
let(:presenter_output) { load_fixture :simple_quote_presenter_output, :html }
|
30
|
+
let(:attributes_output) { load_fixture :simple_quote_presenter_attributes_output, :html }
|
29
31
|
|
30
32
|
describe "using a custom presenter" do
|
31
33
|
|
32
34
|
before do
|
33
|
-
Shortcode.register_presenter
|
35
|
+
Shortcode.register_presenter MyPresenter
|
34
36
|
end
|
35
37
|
|
36
|
-
it "uses the
|
37
|
-
Shortcode.process(simple_quote).gsub("\n",'').should ==
|
38
|
+
it "uses the custom attributes" do
|
39
|
+
Shortcode.process(simple_quote).gsub("\n",'').should == presenter_output.gsub("\n",'')
|
40
|
+
end
|
41
|
+
|
42
|
+
it "passes through additional attributes" do
|
43
|
+
Shortcode.process(simple_quote, { title: 'Additional attribute title' }).gsub("\n",'').should == attributes_output.gsub("\n",'')
|
38
44
|
end
|
39
45
|
|
40
46
|
end
|
data/spec/transformer_spec.rb
CHANGED
@@ -33,7 +33,7 @@ describe Shortcode do
|
|
33
33
|
|
34
34
|
it "converts into html" do
|
35
35
|
obj = parser.parse(simple_quote)
|
36
|
-
html = transformer.apply obj
|
36
|
+
html = transformer.apply obj, additional_attributes: nil
|
37
37
|
html.should == simple_quote_output
|
38
38
|
end
|
39
39
|
|
@@ -42,7 +42,7 @@ describe Shortcode do
|
|
42
42
|
context "full_quote" do
|
43
43
|
|
44
44
|
it "converts into html" do
|
45
|
-
html = transformer.apply(parser.parse(full_quote))
|
45
|
+
html = transformer.apply(parser.parse(full_quote), additional_attributes: nil)
|
46
46
|
html.should == full_quote_output
|
47
47
|
end
|
48
48
|
|
@@ -51,7 +51,7 @@ describe Shortcode do
|
|
51
51
|
context "quote_with_extras" do
|
52
52
|
|
53
53
|
it "converts into html" do
|
54
|
-
html = transformer.apply(parser.parse(quote_with_extras))
|
54
|
+
html = transformer.apply(parser.parse(quote_with_extras), additional_attributes: nil)
|
55
55
|
html.should == quote_with_extras_output
|
56
56
|
end
|
57
57
|
|
@@ -60,7 +60,7 @@ describe Shortcode do
|
|
60
60
|
context "simple_list" do
|
61
61
|
|
62
62
|
it "converts into html" do
|
63
|
-
html = transformer.apply(parser.parse(simple_list))
|
63
|
+
html = transformer.apply(parser.parse(simple_list), additional_attributes: nil)
|
64
64
|
html.should == simple_list_output
|
65
65
|
end
|
66
66
|
|
@@ -69,7 +69,7 @@ describe Shortcode do
|
|
69
69
|
context "timeline_event" do
|
70
70
|
|
71
71
|
it "converts into html" do
|
72
|
-
html = transformer.apply(parser.parse(timeline_event))
|
72
|
+
html = transformer.apply(parser.parse(timeline_event), additional_attributes: nil)
|
73
73
|
html.should == timeline_event_output
|
74
74
|
end
|
75
75
|
|
@@ -78,7 +78,7 @@ describe Shortcode do
|
|
78
78
|
context "timeline_info" do
|
79
79
|
|
80
80
|
it "converts into html" do
|
81
|
-
html = transformer.apply(parser.parse(timeline_info))
|
81
|
+
html = transformer.apply(parser.parse(timeline_info), additional_attributes: nil)
|
82
82
|
html.should == timeline_info_output
|
83
83
|
end
|
84
84
|
|
@@ -87,7 +87,7 @@ describe Shortcode do
|
|
87
87
|
context "timeline_person" do
|
88
88
|
|
89
89
|
it "converts into html" do
|
90
|
-
html = transformer.apply(parser.parse(timeline_person))
|
90
|
+
html = transformer.apply(parser.parse(timeline_person), additional_attributes: nil)
|
91
91
|
html.should == timeline_person_output
|
92
92
|
end
|
93
93
|
|
@@ -96,7 +96,7 @@ describe Shortcode do
|
|
96
96
|
context "complex_snippet" do
|
97
97
|
|
98
98
|
it "converts into html" do
|
99
|
-
html = transformer.apply(parser.parse(complex_snippet))
|
99
|
+
html = transformer.apply(parser.parse(complex_snippet), additional_attributes: nil)
|
100
100
|
html.should == complex_snippet_output
|
101
101
|
end
|
102
102
|
end
|
@@ -111,7 +111,7 @@ describe Shortcode do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "converts into html" do
|
114
|
-
html = transformer.apply(parser.parse(simple_quote))
|
114
|
+
html = transformer.apply(parser.parse(simple_quote), additional_attributes: nil)
|
115
115
|
html.gsub("\n",'').should == simple_quote_output.gsub("\n",'')
|
116
116
|
end
|
117
117
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shortcode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parslet
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.6.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.6.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: haml
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- .travis.yml
|
104
104
|
- Appraisals
|
105
105
|
- Gemfile
|
106
|
+
- Gemfile.lock
|
106
107
|
- LICENSE.txt
|
107
108
|
- README.md
|
108
109
|
- Rakefile
|
@@ -115,6 +116,7 @@ files:
|
|
115
116
|
- lib/shortcode/exceptions.rb
|
116
117
|
- lib/shortcode/parser.rb
|
117
118
|
- lib/shortcode/presenter.rb
|
119
|
+
- lib/shortcode/processor.rb
|
118
120
|
- lib/shortcode/railtie.rb
|
119
121
|
- lib/shortcode/tag.rb
|
120
122
|
- lib/shortcode/transformer.rb
|
@@ -141,6 +143,7 @@ files:
|
|
141
143
|
- spec/support/fixtures/simple_list_output.html
|
142
144
|
- spec/support/fixtures/simple_quote.txt
|
143
145
|
- spec/support/fixtures/simple_quote_output.html
|
146
|
+
- spec/support/fixtures/simple_quote_presenter_attributes_output.html
|
144
147
|
- spec/support/fixtures/simple_quote_presenter_output.html
|
145
148
|
- spec/support/fixtures/timeline_event.txt
|
146
149
|
- spec/support/fixtures/timeline_event_output.html
|
@@ -206,6 +209,7 @@ test_files:
|
|
206
209
|
- spec/support/fixtures/simple_list_output.html
|
207
210
|
- spec/support/fixtures/simple_quote.txt
|
208
211
|
- spec/support/fixtures/simple_quote_output.html
|
212
|
+
- spec/support/fixtures/simple_quote_presenter_attributes_output.html
|
209
213
|
- spec/support/fixtures/simple_quote_presenter_output.html
|
210
214
|
- spec/support/fixtures/timeline_event.txt
|
211
215
|
- spec/support/fixtures/timeline_event_output.html
|