mbrao 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/.travis-gemfile +13 -0
- data/.travis.yml +8 -0
- data/.yardopts +1 -0
- data/Gemfile +21 -0
- data/README.md +60 -0
- data/Rakefile +11 -0
- data/doc/ActionView/Template/Handlers/MbraoTemplate.html +568 -0
- data/doc/ActionView/Template/Handlers.html +125 -0
- data/doc/HTML/Pipeline/KramdownFilter.html +354 -0
- data/doc/HTML/Pipeline.html +140 -0
- data/doc/HTML.html +125 -0
- data/doc/Mbrao/Author.html +1402 -0
- data/doc/Mbrao/Content.html +4779 -0
- data/doc/Mbrao/ContentPublicInterface.html +658 -0
- data/doc/Mbrao/Exceptions/InvalidDate.html +133 -0
- data/doc/Mbrao/Exceptions/InvalidMetadata.html +133 -0
- data/doc/Mbrao/Exceptions/Parsing.html +133 -0
- data/doc/Mbrao/Exceptions/Rendering.html +133 -0
- data/doc/Mbrao/Exceptions/UnavailableLocalization.html +133 -0
- data/doc/Mbrao/Exceptions/Unimplemented.html +133 -0
- data/doc/Mbrao/Exceptions/UnknownEngine.html +133 -0
- data/doc/Mbrao/Exceptions.html +125 -0
- data/doc/Mbrao/Parser.html +418 -0
- data/doc/Mbrao/ParsingEngines/Base.html +658 -0
- data/doc/Mbrao/ParsingEngines/PlainText.html +571 -0
- data/doc/Mbrao/ParsingEngines.html +127 -0
- data/doc/Mbrao/PublicInterface/ClassMethods.html +1727 -0
- data/doc/Mbrao/PublicInterface.html +134 -0
- data/doc/Mbrao/RenderingEngines/Base.html +280 -0
- data/doc/Mbrao/RenderingEngines/HtmlPipeline.html +873 -0
- data/doc/Mbrao/RenderingEngines.html +127 -0
- data/doc/Mbrao/Validations/ClassMethods.html +692 -0
- data/doc/Mbrao/Validations.html +134 -0
- data/doc/Mbrao/Version.html +189 -0
- data/doc/Mbrao.html +130 -0
- data/doc/_index.html +395 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +338 -0
- data/doc/file.README.html +135 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +135 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +516 -0
- data/doc/top-level-namespace.html +112 -0
- data/lib/mbrao/author.rb +61 -0
- data/lib/mbrao/content.rb +300 -0
- data/lib/mbrao/exceptions.rb +38 -0
- data/lib/mbrao/integrations/rails.rb +51 -0
- data/lib/mbrao/parser.rb +276 -0
- data/lib/mbrao/parsing_engines/base.rb +51 -0
- data/lib/mbrao/parsing_engines/plain_text.rb +187 -0
- data/lib/mbrao/rendering_engines/base.rb +22 -0
- data/lib/mbrao/rendering_engines/html_pipeline.rb +147 -0
- data/lib/mbrao/version.rb +25 -0
- data/lib/mbrao.rb +24 -0
- data/mbrao.gemspec +31 -0
- data/spec/coverage_helper.rb +17 -0
- data/spec/mbrao/author_spec.rb +62 -0
- data/spec/mbrao/content_spec.rb +280 -0
- data/spec/mbrao/integrations/rails_spec.rb +92 -0
- data/spec/mbrao/parser_spec.rb +269 -0
- data/spec/mbrao/parsing_engines/base_spec.rb +52 -0
- data/spec/mbrao/parsing_engines/plain_text_spec.rb +141 -0
- data/spec/mbrao/rendering_engines/base_spec.rb +17 -0
- data/spec/mbrao/rendering_engines/html_pipeline_spec.rb +128 -0
- data/spec/spec_helper.rb +15 -0
- metadata +195 -0
@@ -0,0 +1,141 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the mbrao gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Mbrao::ParsingEngines::PlainText do
|
10
|
+
let(:reference) { Mbrao::ParsingEngines::PlainText.new }
|
11
|
+
|
12
|
+
let(:sample_metadata) {
|
13
|
+
<<EOM
|
14
|
+
title: "OK"
|
15
|
+
locales:
|
16
|
+
- it
|
17
|
+
- en
|
18
|
+
more:
|
19
|
+
it: "Continua"
|
20
|
+
en: "Continue"
|
21
|
+
other:
|
22
|
+
status: "OK"
|
23
|
+
EOM
|
24
|
+
}
|
25
|
+
|
26
|
+
let(:sample_content){
|
27
|
+
<<EOC
|
28
|
+
This is a content.
|
29
|
+
|
30
|
+
{{content: en}}
|
31
|
+
Optionally I'm filtered only for English.
|
32
|
+
{{/content}}
|
33
|
+
EOC
|
34
|
+
}
|
35
|
+
|
36
|
+
let(:sample_valid) {
|
37
|
+
<<EOS1
|
38
|
+
|
39
|
+
|
40
|
+
{{metadata}}
|
41
|
+
#{sample_metadata}
|
42
|
+
{{/metadata}}
|
43
|
+
|
44
|
+
#{sample_content}
|
45
|
+
|
46
|
+
EOS1
|
47
|
+
}
|
48
|
+
|
49
|
+
let(:sample_invalid) {
|
50
|
+
<<EOS2
|
51
|
+
{{metadata}}
|
52
|
+
#{sample_content}
|
53
|
+
EOS2
|
54
|
+
}
|
55
|
+
|
56
|
+
let(:sample_no_metadata) {
|
57
|
+
<<EOS3
|
58
|
+
#{sample_content}
|
59
|
+
EOS3
|
60
|
+
}
|
61
|
+
|
62
|
+
let(:sample_nested_content) {
|
63
|
+
<<EOS4
|
64
|
+
START
|
65
|
+
{{content: it, en}}IT, EN{{/content}}
|
66
|
+
{{content: *, !en, !it, !es, !fr}}MIDDLE{{/content}}
|
67
|
+
{{content: !it}}
|
68
|
+
{{content: !es}}!IT and !ES{{/content}}
|
69
|
+
{{content: en}}EN in !IT{{/content}}
|
70
|
+
|
71
|
+
!IT
|
72
|
+
{{/content}}
|
73
|
+
{{content: !*}}END{{/content}}
|
74
|
+
EOS4
|
75
|
+
}
|
76
|
+
|
77
|
+
describe "#separate_components" do
|
78
|
+
it "should return correct metadata and contents" do
|
79
|
+
expect(reference.separate_components(sample_valid)).to eq([sample_metadata.strip, sample_content.strip])
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should return the whole content if metadata are either incorrectly tagged or not present" do
|
83
|
+
expect(reference.separate_components(sample_invalid)).to eq(["", sample_invalid.strip])
|
84
|
+
expect(reference.separate_components(sample_no_metadata)).to eq(["", sample_no_metadata.strip])
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should use different tags" do
|
88
|
+
expect(reference.separate_components("[meta]{{metadata}}OK\n[/meta] REST", {meta_tags: ["[meta]", "[/meta]"]})).to eq(["{{metadata}}OK", "REST"])
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#parse_metadata" do
|
93
|
+
it "should correctly parse YAML formatted metadata" do
|
94
|
+
expect(reference.parse_metadata("---\nyaml:\n :a: 'b'")).to eq({"yaml" => {a: "b"}})
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should return a default value if parsing failed" do
|
98
|
+
expect(reference.parse_metadata("---\n\"yaml:", {default: "DEFAULT"})).to eq("DEFAULT")
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should raise an exception if parsing failed and no default is available" do
|
102
|
+
expect { reference.parse_metadata("---\n\"yaml:") }.to raise_error(::Mbrao::Exceptions::InvalidMetadata)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "#filter_content" do
|
107
|
+
def parse_content(content)
|
108
|
+
content.split("\n").collect(&:strip).select {|l| l.present? }
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should return the original content if locales contains *" do
|
112
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), "*"))).to eq(["START", "IT, EN", "MIDDLE", "!IT and !ES", "EN in !IT", "!IT", "END"])
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should use default locale if nothing is specified" do
|
116
|
+
::Mbrao::Parser.locale = :it
|
117
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content)))).to eq(["START", "IT, EN", "MIDDLE", "END"])
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should ignore unclosed tag, trying to close the leftmost start tag" do
|
121
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, "{{content: it}}\n{{content: en}}NO{{/content}}")))).to eq(["{{content: en}}NO"])
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should correctly filter by tag" do
|
125
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), "en"))).to eq(["START", "IT, EN", "MIDDLE", "!IT and !ES", "EN in !IT", "!IT", "END"])
|
126
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), "it"))).to eq(["START", "IT, EN", "MIDDLE", "END"])
|
127
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), "es"))).to eq(["START", "MIDDLE", "!IT", "END"])
|
128
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), "fr"))).to eq(["START", "MIDDLE", "!IT and !ES", "!IT", "END"])
|
129
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), ["it", "en"]))).to eq(["START", "IT, EN", "MIDDLE", "END"])
|
130
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), ["es", "en"]))).to eq(["START", "IT, EN", "MIDDLE", "EN in !IT", "!IT", "END"])
|
131
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), ["fr", "en"]))).to eq(["START", "IT, EN", "MIDDLE", "!IT and !ES", "EN in !IT", "!IT", "END"])
|
132
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample_nested_content), ["fr", "es", "en"]))).to eq(["START", "IT, EN", "MIDDLE", "EN in !IT", "!IT", "END"])
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should use different tags" do
|
136
|
+
sample = "[content-it]{{content: !it}}IT[/content]\nOK"
|
137
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample), "it", {content_tags: ["[content-%ARGS%]", "[/content]"]}))).to eq(["{{content: !it}}IT", "OK"])
|
138
|
+
expect(parse_content(reference.filter_content(::Mbrao::Content.create(nil, sample), "en", {content_tags: ["[content-%ARGS%]", "[/content]"]}))).to eq(["OK"])
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the mbrao gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Mbrao::RenderingEngines::Base do
|
10
|
+
let(:reference) { Mbrao::RenderingEngines::Base.new }
|
11
|
+
|
12
|
+
describe "#render" do
|
13
|
+
it "should raise an exception" do
|
14
|
+
expect { reference.render("CONTENT", {}, {}) }.to raise_error(Mbrao::Exceptions::Unimplemented)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the mbrao gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Mbrao::RenderingEngines::HtmlPipeline do
|
10
|
+
let(:reference) { Mbrao::RenderingEngines::HtmlPipeline.new }
|
11
|
+
|
12
|
+
describe "#render" do
|
13
|
+
it "should forward everything to the html-pipeline" do
|
14
|
+
pipeline = Object.new
|
15
|
+
pipeline.should_receive(:call).with("CONTENT").and_return({output: ""})
|
16
|
+
::HTML::Pipeline.should_receive(:new).with(an_instance_of(Array), an_instance_of(Hash)).and_return(pipeline)
|
17
|
+
reference.render("CONTENT")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should raise a specific exception if a locale is not available" do
|
21
|
+
|
22
|
+
expect { reference.render(::Mbrao::Content.create({locales: ["en"]}, "BODY"), {locales: ["it"]}) }.to raise_error(::Mbrao::Exceptions::UnavailableLocalization)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should raise an exception if anything goes wrong" do
|
26
|
+
::HTML::Pipeline.stub(:new).and_raise(ArgumentError.new("ERROR"))
|
27
|
+
expect { reference.render("CONTENT") }.to raise_error(::Mbrao::Exceptions::Rendering)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should have default options" do
|
31
|
+
filters = [:kramdown, :table_of_contents, :autolink, :emoji, :image_max_width].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
32
|
+
::HTML::Pipeline.should_receive(:new).with(filters, {gfm: true, asset_root: "/"}).and_call_original
|
33
|
+
reference.render("CONTENT")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should merge context to options" do
|
37
|
+
::HTML::Pipeline.should_receive(:new).with(an_instance_of(Array), {gfm: true, asset_root: "/", additional: true}).and_call_original
|
38
|
+
reference.render("CONTENT", {}, {additional: true})
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should restrict filter used" do
|
42
|
+
filters = [:table_of_contents, :autolink, :emoji, :image_max_width].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
43
|
+
::HTML::Pipeline.should_receive(:new).with(filters, an_instance_of(Hash)).and_call_original
|
44
|
+
reference.render("CONTENT", {kramdown: false})
|
45
|
+
|
46
|
+
filters = [:kramdown, :autolink, :emoji, :image_max_width].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
47
|
+
::HTML::Pipeline.should_receive(:new).with(filters, an_instance_of(Hash)).and_call_original
|
48
|
+
reference.render("CONTENT", {toc: false})
|
49
|
+
|
50
|
+
filters = [:kramdown, :table_of_contents, :emoji, :image_max_width].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
51
|
+
::HTML::Pipeline.should_receive(:new).with(filters, an_instance_of(Hash)).and_call_original
|
52
|
+
reference.render("CONTENT", {links: false})
|
53
|
+
|
54
|
+
filters = [:kramdown, :table_of_contents, :autolink, :image_max_width].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
55
|
+
::HTML::Pipeline.should_receive(:new).with(filters, an_instance_of(Hash)).and_call_original
|
56
|
+
reference.render("CONTENT", {emoji: false})
|
57
|
+
|
58
|
+
filters = [:kramdown, :table_of_contents, :autolink, :emoji].collect {|f| ::Mbrao::Parser.find_class(f, "::HTML::Pipeline::%CLASS%Filter", true) }
|
59
|
+
::HTML::Pipeline.should_receive(:new).with(filters, an_instance_of(Hash)).and_call_original
|
60
|
+
reference.render("CONTENT", {image_max_width: false})
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "#default_pipeline" do
|
65
|
+
it "should return a default pipeline" do
|
66
|
+
expect(reference.default_pipeline).to eq([[:kramdown], [:table_of_contents, :toc], [:autolink, :links], [:emoji], [:image_max_width]])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#default_pipeline=" do
|
71
|
+
it "should set a correct pipeline" do
|
72
|
+
reference.default_pipeline = nil
|
73
|
+
expect(reference.default_pipeline).to eq([[]])
|
74
|
+
|
75
|
+
reference.default_pipeline = "A"
|
76
|
+
expect(reference.default_pipeline).to eq([[:A]])
|
77
|
+
|
78
|
+
reference.default_pipeline = ["A", "B"]
|
79
|
+
expect(reference.default_pipeline).to eq([[:A], [:B]])
|
80
|
+
|
81
|
+
reference.default_pipeline = ["1", [["B", ["C"]]]]
|
82
|
+
expect(reference.default_pipeline).to eq([[:"1"], [:B, :C]])
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "#default_options" do
|
87
|
+
it "should return a default hash" do
|
88
|
+
expect(reference.default_options).to eq({gfm: true, asset_root: "/"})
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should return the set hash" do
|
92
|
+
reference.instance_variable_set(:@default_options, {})
|
93
|
+
expect(reference.default_options).to eq({})
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "#default_options=" do
|
98
|
+
it "should only assign if the value is an Hash" do
|
99
|
+
reference.default_options = {a: "b"}
|
100
|
+
expect(reference.default_options).to eq({a: "b"})
|
101
|
+
reference.default_options = 1
|
102
|
+
expect(reference.default_options).to eq({})
|
103
|
+
reference.default_options = nil
|
104
|
+
expect(reference.default_options).to eq({})
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe HTML::Pipeline::KramdownFilter do
|
110
|
+
describe "#initialize" do
|
111
|
+
it "should call the parent constructor" do
|
112
|
+
HTML::Pipeline::TextFilter.should_receive(:new).with("\rCONTENT\r", {a: "b"}, {c: "d"})
|
113
|
+
HTML::Pipeline::KramdownFilter.new("\rCONTENT\r", {a: "b"}, {c: "d"})
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should remove \r from the text" do
|
117
|
+
reference = HTML::Pipeline::KramdownFilter.new("\rCONTENT\r", {a: "b"}, {c: "d"})
|
118
|
+
expect(reference.instance_variable_get(:@text)).to eq("CONTENT")
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should use Kramdown with given options for building the result" do
|
122
|
+
object = Object.new
|
123
|
+
Kramdown::Document.should_receive(:new).with("CONTENT", {a: "b"}).and_return(object)
|
124
|
+
object.should_receive(:to_html)
|
125
|
+
HTML::Pipeline::KramdownFilter.new("\rCONTENT\r", {a: "b"}, {c: "d"}).call
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the mbrao gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
7
|
+
require "rubygems"
|
8
|
+
require "bundler/setup"
|
9
|
+
require "mbrao"
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.expect_with :rspec do |c|
|
13
|
+
c.syntax = :expect
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mbrao
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Shogun
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: lazier
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.7.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.7.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: html-pipeline
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.0.8
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.0.8
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: slim
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.3.6
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.6
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: kramdown
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.14.2
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.14.2
|
78
|
+
description: A content parser and renderer with embedded metadata support.
|
79
|
+
email:
|
80
|
+
- shogun_panda@me.com
|
81
|
+
executables: []
|
82
|
+
extensions: []
|
83
|
+
extra_rdoc_files: []
|
84
|
+
files:
|
85
|
+
- .gitignore
|
86
|
+
- .travis-gemfile
|
87
|
+
- .travis.yml
|
88
|
+
- .yardopts
|
89
|
+
- Gemfile
|
90
|
+
- README.md
|
91
|
+
- Rakefile
|
92
|
+
- doc/ActionView/Template/Handlers.html
|
93
|
+
- doc/ActionView/Template/Handlers/MbraoTemplate.html
|
94
|
+
- doc/HTML.html
|
95
|
+
- doc/HTML/Pipeline.html
|
96
|
+
- doc/HTML/Pipeline/KramdownFilter.html
|
97
|
+
- doc/Mbrao.html
|
98
|
+
- doc/Mbrao/Author.html
|
99
|
+
- doc/Mbrao/Content.html
|
100
|
+
- doc/Mbrao/ContentPublicInterface.html
|
101
|
+
- doc/Mbrao/Exceptions.html
|
102
|
+
- doc/Mbrao/Exceptions/InvalidDate.html
|
103
|
+
- doc/Mbrao/Exceptions/InvalidMetadata.html
|
104
|
+
- doc/Mbrao/Exceptions/Parsing.html
|
105
|
+
- doc/Mbrao/Exceptions/Rendering.html
|
106
|
+
- doc/Mbrao/Exceptions/UnavailableLocalization.html
|
107
|
+
- doc/Mbrao/Exceptions/Unimplemented.html
|
108
|
+
- doc/Mbrao/Exceptions/UnknownEngine.html
|
109
|
+
- doc/Mbrao/Parser.html
|
110
|
+
- doc/Mbrao/ParsingEngines.html
|
111
|
+
- doc/Mbrao/ParsingEngines/Base.html
|
112
|
+
- doc/Mbrao/ParsingEngines/PlainText.html
|
113
|
+
- doc/Mbrao/PublicInterface.html
|
114
|
+
- doc/Mbrao/PublicInterface/ClassMethods.html
|
115
|
+
- doc/Mbrao/RenderingEngines.html
|
116
|
+
- doc/Mbrao/RenderingEngines/Base.html
|
117
|
+
- doc/Mbrao/RenderingEngines/HtmlPipeline.html
|
118
|
+
- doc/Mbrao/Validations.html
|
119
|
+
- doc/Mbrao/Validations/ClassMethods.html
|
120
|
+
- doc/Mbrao/Version.html
|
121
|
+
- doc/_index.html
|
122
|
+
- doc/class_list.html
|
123
|
+
- doc/css/common.css
|
124
|
+
- doc/css/full_list.css
|
125
|
+
- doc/css/style.css
|
126
|
+
- doc/file.README.html
|
127
|
+
- doc/file_list.html
|
128
|
+
- doc/frames.html
|
129
|
+
- doc/index.html
|
130
|
+
- doc/js/app.js
|
131
|
+
- doc/js/full_list.js
|
132
|
+
- doc/js/jquery.js
|
133
|
+
- doc/method_list.html
|
134
|
+
- doc/top-level-namespace.html
|
135
|
+
- lib/mbrao.rb
|
136
|
+
- lib/mbrao/author.rb
|
137
|
+
- lib/mbrao/content.rb
|
138
|
+
- lib/mbrao/exceptions.rb
|
139
|
+
- lib/mbrao/integrations/rails.rb
|
140
|
+
- lib/mbrao/parser.rb
|
141
|
+
- lib/mbrao/parsing_engines/base.rb
|
142
|
+
- lib/mbrao/parsing_engines/plain_text.rb
|
143
|
+
- lib/mbrao/rendering_engines/base.rb
|
144
|
+
- lib/mbrao/rendering_engines/html_pipeline.rb
|
145
|
+
- lib/mbrao/version.rb
|
146
|
+
- mbrao.gemspec
|
147
|
+
- spec/coverage_helper.rb
|
148
|
+
- spec/mbrao/author_spec.rb
|
149
|
+
- spec/mbrao/content_spec.rb
|
150
|
+
- spec/mbrao/integrations/rails_spec.rb
|
151
|
+
- spec/mbrao/parser_spec.rb
|
152
|
+
- spec/mbrao/parsing_engines/base_spec.rb
|
153
|
+
- spec/mbrao/parsing_engines/plain_text_spec.rb
|
154
|
+
- spec/mbrao/rendering_engines/base_spec.rb
|
155
|
+
- spec/mbrao/rendering_engines/html_pipeline_spec.rb
|
156
|
+
- spec/spec_helper.rb
|
157
|
+
homepage: http://github.com/ShogunPanda/mbrao
|
158
|
+
licenses: []
|
159
|
+
post_install_message:
|
160
|
+
rdoc_options: []
|
161
|
+
require_paths:
|
162
|
+
- lib
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
165
|
+
requirements:
|
166
|
+
- - ! '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: 1.9.3
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
hash: 488107274440574524
|
178
|
+
requirements: []
|
179
|
+
rubyforge_project: mbrao
|
180
|
+
rubygems_version: 1.8.25
|
181
|
+
signing_key:
|
182
|
+
specification_version: 3
|
183
|
+
summary: A content parser and renderer with embedded metadata support.
|
184
|
+
test_files:
|
185
|
+
- spec/coverage_helper.rb
|
186
|
+
- spec/mbrao/author_spec.rb
|
187
|
+
- spec/mbrao/content_spec.rb
|
188
|
+
- spec/mbrao/integrations/rails_spec.rb
|
189
|
+
- spec/mbrao/parser_spec.rb
|
190
|
+
- spec/mbrao/parsing_engines/base_spec.rb
|
191
|
+
- spec/mbrao/parsing_engines/plain_text_spec.rb
|
192
|
+
- spec/mbrao/rendering_engines/base_spec.rb
|
193
|
+
- spec/mbrao/rendering_engines/html_pipeline_spec.rb
|
194
|
+
- spec/spec_helper.rb
|
195
|
+
has_rdoc:
|