shortcode 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/shortcode.rb CHANGED
@@ -19,11 +19,11 @@ module Shortcode
19
19
  private
20
20
 
21
21
  def parser
22
- @@parser ||= Shortcode::Parser.new
22
+ @@parser = Shortcode::Parser.new
23
23
  end
24
24
 
25
25
  def transformer
26
- @@transformer ||= Shortcode::Transformer.new
26
+ @@transformer = Shortcode::Transformer.new
27
27
  end
28
28
 
29
29
  end
@@ -31,6 +31,7 @@ class Shortcode::Parser < Parslet::Parser
31
31
  private
32
32
 
33
33
  def match_any_of(tags)
34
+ return str('') if tags.length < 1
34
35
  tags.map{ |tag| str(tag) }.inject do |tag_chain, tag|
35
36
  tag_chain.send :|, tag
36
37
  end
@@ -1,3 +1,3 @@
1
1
  module Shortcode
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ require 'parslet/rig/rspec'
3
+ require 'pp'
4
+ require 'benchmark'
5
+
6
+ # Uncomment to run performace specs
7
+
8
+
9
+ # describe Shortcode do
10
+
11
+ # let(:long_text) { load_fixture :long_text }
12
+ # let(:parser) { Shortcode::Parser.new }
13
+ # let(:transformer) { Shortcode::Transformer.new }
14
+
15
+ # context "parser" do
16
+
17
+ # before { long_text }
18
+
19
+ # it "runs quickly" do
20
+ # Benchmark.realtime {
21
+ # parser.parse long_text
22
+ # }.should < 1.5
23
+ # end
24
+
25
+ # end
26
+
27
+ # context "transformer" do
28
+
29
+ # let(:parsed_hash) { parser.parse long_text }
30
+
31
+ # before { parsed_hash }
32
+
33
+ # it "runs quickly" do
34
+ # Benchmark.realtime {
35
+ # transformer.apply(parsed_hash)
36
+ # }.should < 0.1
37
+ # end
38
+
39
+ # end
40
+
41
+ # end
@@ -28,4 +28,37 @@ describe Shortcode do
28
28
  Shortcode.process(simple_quote).gsub("\n",'').should == simple_quote_output.gsub("\n",'')
29
29
  end
30
30
  end
31
+
32
+ context "configuration" do
33
+
34
+ describe "block_tags" do
35
+
36
+ before do
37
+ Shortcode.setup do |config|
38
+ config.block_tags = []
39
+ end
40
+ end
41
+
42
+ it "handles an empty array" do
43
+ expect { Shortcode.process(simple_quote) }.to_not raise_error
44
+ end
45
+
46
+ end
47
+
48
+ describe "self_closing_tags" do
49
+
50
+ before do
51
+ Shortcode.setup do |config|
52
+ config.self_closing_tags = []
53
+ end
54
+ end
55
+
56
+ it "handles an empty array" do
57
+ expect { Shortcode.process(simple_quote) }.to_not raise_error
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+
31
64
  end
@@ -0,0 +1,39 @@
1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi pulvinar ac orci at pulvinar. Nullam at felis augue. Aenean sed vehicula mauris, sit amet rhoncus neque. In placerat commodo dolor, at vulputate urna venenatis ut. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vitae justo ultrices, convallis massa ac, dictum leo. Cras dignissim bibendum facilisis. Aliquam et aliquet felis. Quisque laoreet commodo libero, eget tincidunt quam sagittis sit amet. Fusce leo risus, tristique vel ante sed, feugiat vulputate ante. Aenean aliquam erat ut augue feugiat, eu tempus ante adipiscing. Aliquam sed erat quis sapien posuere euismod. Cras dignissim luctus nisi, id imperdiet elit consequat eget. Duis condimentum rhoncus commodo. Donec hendrerit fermentum dolor sed accumsan.
2
+
3
+ Maecenas consectetur tempus imperdiet. Vivamus posuere pellentesque mauris nec volutpat. Morbi scelerisque ante mauris, aliquam condimentum eros mollis et. Pellentesque mattis turpis urna, a viverra mi elementum quis. Mauris ut vulputate diam. Nullam mauris augue, tincidunt non nunc id, eleifend aliquet sapien. Vivamus molestie risus eu risus adipiscing mollis. Quisque tincidunt venenatis odio, eget hendrerit metus semper non. Etiam et massa ligula. Sed vitae odio enim. Curabitur ac cursus ante. Praesent orci sapien, hendrerit nec lectus ac, luctus sollicitudin mauris. Duis dolor massa, interdum at orci eget, rhoncus bibendum quam. Aenean sed diam lorem.
4
+
5
+ Cras ac libero nec turpis auctor aliquam. Aenean mauris orci, porta imperdiet mauris eget, facilisis auctor velit. Vivamus quis sapien sit amet turpis mattis eleifend. Sed sed leo erat. Etiam nec volutpat tortor. Integer quis nulla elementum, placerat velit elementum, faucibus mauris. Sed pharetra tortor ut orci tempus, in volutpat est rhoncus.
6
+
7
+ Sed non iaculis lorem, eget molestie quam. Mauris eget est at dolor scelerisque ultricies. Aenean dapibus interdum elit, sed commodo ipsum. In porttitor cursus leo, at malesuada lorem vehicula sed. Maecenas faucibus blandit ante, ac fringilla libero pellentesque nec. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet dignissim felis. In eget ligula iaculis, placerat tortor sed, pulvinar nulla. Vestibulum et justo in lorem dapibus accumsan. Donec egestas, lacus a dignissim iaculis, velit justo eleifend purus, eu faucibus nisl quam congue sem. Maecenas erat elit, feugiat a massa sed, viverra fringilla orci. Duis id nibh justo. Fusce felis velit, mollis sed malesuada eu, tincidunt et diam. Phasellus feugiat mi non lacus accumsan ultrices. Sed auctor, purus quis convallis pellentesque, magna est facilisis augue, vel dapibus velit nibh id libero.
8
+
9
+ Nunc aliquam sagittis nibh quis tempus. Donec quis gravida massa, et accumsan eros. Quisque vitae tellus sit amet mauris consequat iaculis. Mauris convallis molestie ante, id mollis arcu scelerisque congue. Sed in dapibus quam. Nam faucibus purus at tortor tempus porttitor quis quis odio. Pellentesque vel justo a ipsum gravida accumsan. Phasellus tincidunt vehicula quam, in varius erat.
10
+
11
+ Donec volutpat imperdiet consectetur. Nullam commodo, magna in elementum ullamcorper, lorem urna posuere felis, vitae volutpat odio orci ac est. Nam pellentesque orci sollicitudin, mattis nisi non, aliquet mi. Quisque mollis eros sed ultricies pretium. Aenean cursus lorem leo, lobortis aliquet mauris hendrerit a. Aenean non metus lectus. Donec dolor justo, elementum et nibh eget, feugiat lacinia ante. Nulla facilisi. Etiam quam sem, ornare in convallis vitae, ultricies et purus. Donec fringilla, enim sit amet tempus vulputate, urna ipsum malesuada orci, non euismod libero enim nec leo. Nunc vestibulum nisi a nunc congue placerat. Morbi dui massa, imperdiet vel quam sed, interdum egestas sem. Cras lobortis at mi sed eleifend. Proin nec erat pretium, tristique sapien in, convallis tellus. Aenean id varius velit. Integer eleifend molestie pharetra.
12
+
13
+ Aliquam sodales sollicitudin imperdiet. Quisque sapien massa, pulvinar sed lorem et, euismod porttitor metus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam interdum cursus tellus, vel porta justo fermentum vel. Nam rutrum posuere purus et adipiscing. Nullam iaculis cursus placerat. Aliquam erat volutpat.
14
+
15
+ Quisque a sapien dictum, rutrum ipsum nec, eleifend sem. Sed pellentesque vehicula dolor, sed consequat tortor elementum id. Mauris dapibus, magna at gravida interdum, turpis est bibendum diam, non accumsan odio eros a velit. In at congue mi. Ut vel ultricies mauris. Nulla viverra convallis vestibulum. Suspendisse vel massa turpis. Curabitur lobortis ante at lorem aliquet, rhoncus viverra mi consequat. Mauris quis lectus dolor.
16
+
17
+ Quisque vitae ultricies magna. Fusce non egestas nisl. Nulla facilisi. Donec et ante eleifend, tempus dolor in, condimentum quam. Integer suscipit malesuada augue ut vestibulum. In aliquam, velit sed malesuada dapibus, libero ligula commodo sapien, non euismod sem velit id arcu. Nulla dapibus accumsan justo ac ultrices. Pellentesque sit amet laoreet ipsum. Aliquam at tristique lacus, vel congue turpis. Vivamus porta sem vel porta pulvinar. Vestibulum egestas ante quis mauris dictum, a imperdiet mauris venenatis.
18
+
19
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis consequat facilisis arcu, ut blandit mauris lobortis a. Proin nunc leo, suscipit ut sem eu, consequat vestibulum nunc. Duis metus risus, dignissim et volutpat sit amet, faucibus in mi. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam eu lobortis felis, nec tincidunt tellus. Aenean felis tortor, dignissim at sagittis vitae, malesuada id nisi. Vivamus dui mauris, interdum ut fermentum in, lobortis vel lacus. Cras sit amet sagittis purus, et vulputate tellus. Vestibulum fringilla quis dolor in egestas. Mauris sed adipiscing est. Integer ut luctus metus. Vivamus accumsan est metus, ac sagittis arcu ornare id. Nullam ultrices mi ligula, in eleifend diam pharetra vel. Nullam quis sagittis eros.
20
+
21
+ Nullam elit nibh, accumsan non pharetra sit amet, laoreet mattis lacus. Vestibulum porta porttitor libero, id cursus eros fringilla vestibulum. Donec iaculis mauris sed tellus congue volutpat. Nullam vitae dolor eget sapien semper pellentesque. Pellentesque eu enim ullamcorper dui pulvinar porta. Integer sit amet dictum sapien, at mollis sem. Sed a mi dictum, tempor erat vitae, vulputate tellus. In lacus urna, ullamcorper eu ullamcorper non, commodo nec urna. Aliquam purus lorem, dictum eu dignissim ut, malesuada et nisi. Nam condimentum vestibulum leo, ut scelerisque lorem. Nulla imperdiet ipsum turpis, a tempus ante tempor nec. Aliquam et urna at felis ultrices rutrum ut nec metus. Nam ullamcorper sollicitudin imperdiet. Quisque consequat lacinia turpis, eget euismod dolor rhoncus nec. Cras et malesuada nibh.
22
+
23
+ Phasellus sed massa augue. Pellentesque dapibus nisi ac elit luctus, id fringilla lorem aliquet. Sed in metus elementum, pharetra nisl vitae, hendrerit lectus. Curabitur quis eros enim. Cras sem ligula, iaculis ac orci vel, tristique vulputate mauris. Proin ullamcorper sapien eu sem elementum ultricies. Aenean porta risus sed massa venenatis, sed dapibus enim pretium. Vivamus ullamcorper enim pulvinar ligula consequat porttitor. Nullam libero leo, ultrices sit amet lacus ut, elementum consectetur ligula.
24
+
25
+ Mauris convallis faucibus nibh, non dapibus sem mattis nec. Quisque in mattis neque. Sed egestas vitae augue vitae ullamcorper. In nec nulla tincidunt, sodales neque in, accumsan ante. Nunc vitae sodales diam, quis accumsan nulla. Nulla vel magna tincidunt, pellentesque neque et, luctus lacus. Integer tincidunt semper dolor, ac consectetur ante fringilla eu.
26
+
27
+ Vestibulum in est suscipit, tincidunt quam quis, gravida enim. Ut eu condimentum velit. Proin a orci nec ante pulvinar fringilla. Donec scelerisque libero nulla, ut ullamcorper neque condimentum vel. Donec condimentum placerat diam, placerat posuere risus lobortis at. Donec sodales malesuada ultricies. Mauris rutrum luctus mattis. Nullam rutrum, neque at interdum malesuada, ante mauris pulvinar arcu, id tincidunt erat leo quis nunc. Suspendisse eleifend sagittis malesuada. Phasellus ullamcorper tellus vel felis ultricies eleifend. Vivamus eget rutrum elit. Suspendisse rhoncus gravida nulla, ac tincidunt enim pellentesque ac.
28
+
29
+ Etiam vitae hendrerit metus, et ornare nibh. Sed eget fermentum enim, sit amet tempor ipsum. Maecenas massa nisi, convallis quis sapien et, iaculis euismod lectus. Vestibulum non augue sed tortor accumsan mollis. Duis bibendum, mi sit amet tristique adipiscing, dui risus convallis magna, sed adipiscing velit sem nec velit. Curabitur pellentesque risus commodo, elementum purus id, tempus lorem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vivamus ac leo nec dui hendrerit pulvinar. Integer in libero eget ipsum pretium ultricies. Nullam sollicitudin viverra enim ut posuere. In hac habitasse platea dictumst. Nulla quis tortor a velit vehicula semper eu eu magna. Suspendisse mattis sit amet magna nec mollis. Vestibulum vel ultricies orci. Duis lobortis nibh nec porttitor laoreet.
30
+
31
+ Nullam dui lectus, viverra non leo sit amet, tempus adipiscing ante. Vivamus luctus nunc ac enim vehicula, nec condimentum lorem pretium. Sed nisi magna, varius quis egestas eu, bibendum non eros. Morbi dictum mollis diam, id venenatis orci sodales sit amet. Etiam elementum porttitor arcu, id adipiscing odio luctus id. Donec a erat sodales, fermentum dui consequat, imperdiet ante. Nunc interdum pellentesque sodales. Suspendisse sagittis lacus risus, a convallis nibh interdum at. Aenean et purus at risus eleifend pulvinar vitae vitae eros. Vivamus quis justo tincidunt, dapibus mi eu, aliquet est.
32
+
33
+ Nam consectetur semper sodales. Praesent accumsan velit ac arcu fringilla commodo. Etiam bibendum, nibh a auctor ullamcorper, dui orci dictum turpis, eu suscipit nulla orci quis sapien. In a turpis blandit, imperdiet velit sit amet, adipiscing mi. Nulla id quam commodo, aliquet nibh imperdiet, semper ipsum. Suspendisse in laoreet diam. Nulla facilisi. Integer viverra erat id nisi hendrerit vulputate.
34
+
35
+ Phasellus risus urna, sodales et gravida sed, imperdiet et erat. Phasellus ac libero eu odio congue hendrerit. Pellentesque gravida urna vitae consectetur gravida. Suspendisse potenti. Integer vulputate euismod massa, ac accumsan turpis venenatis id. Aliquam interdum tristique metus, et luctus libero placerat ut. Curabitur iaculis odio sed felis eleifend, ut varius arcu molestie. Aenean ultrices quis urna et dapibus. Aenean laoreet nisi augue, sed bibendum massa posuere non. Duis pulvinar tempus arcu vel pretium. In vel aliquet est. Integer auctor velit quis arcu varius, tristique accumsan massa semper. Suspendisse nisi neque, tristique vitae vehicula at, accumsan sed lorem. Sed eu blandit neque.
36
+
37
+ Praesent eget turpis vel leo fermentum auctor non nec nibh. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean dignissim dapibus pulvinar. Aliquam semper tincidunt ante et volutpat. Cras tempus mi sit amet leo adipiscing mattis. Nullam ullamcorper mi id quam cursus pharetra. Maecenas sollicitudin scelerisque metus suscipit faucibus. Aenean id ultrices diam. Cras lorem lorem, consectetur sit amet vulputate at, accumsan nec eros. Nunc ante nunc, semper ut leo ut, commodo adipiscing neque. Proin viverra nisi id arcu feugiat mollis. Mauris blandit erat sed eros hendrerit, ac pellentesque lorem luctus. Morbi sollicitudin scelerisque ante. Morbi dignissim sem sit amet velit ultrices, quis lobortis lectus molestie. Pellentesque non sapien orci.
38
+
39
+ Praesent odio metus, lacinia vel justo sed, elementum dictum nisi. Duis ut orci nunc. Sed quis risus bibendum quam varius congue nec id quam. Pellentesque eget condimentum magna. Morbi leo felis, varius ut pharetra at, mattis non augue. Mauris cursus interdum purus et pulvinar. Nunc at mi nec urna mollis consequat. Morbi viverra mi in nulla placerat imperdiet. Etiam semper fringilla odio. Praesent facilisis eleifend cursus. Maecenas sagittis sed magna id lacinia. Curabitur commodo convallis tellus, vel fermentum ligula venenatis id.
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.0.3
4
+ version: 0.0.4
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: 2013-08-23 00:00:00.000000000 Z
12
+ date: 2014-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parslet
@@ -113,6 +113,7 @@ files:
113
113
  - lib/shortcode/version.rb
114
114
  - shortcode.gemspec
115
115
  - spec/parser_spec.rb
116
+ - spec/performance_spec.rb
116
117
  - spec/shortcode_spec.rb
117
118
  - spec/spec_helper.rb
118
119
  - spec/support/fixtures.rb
@@ -120,6 +121,7 @@ files:
120
121
  - spec/support/fixtures/complex_snippet_output.html
121
122
  - spec/support/fixtures/full_quote.txt
122
123
  - spec/support/fixtures/full_quote_output.html
124
+ - spec/support/fixtures/long_text.txt
123
125
  - spec/support/fixtures/quote_with_extras.txt
124
126
  - spec/support/fixtures/quote_with_extras_output.html
125
127
  - spec/support/fixtures/simple_list.txt
@@ -168,6 +170,7 @@ specification_version: 3
168
170
  summary: Gem for parsing wordpress style shortcodes
169
171
  test_files:
170
172
  - spec/parser_spec.rb
173
+ - spec/performance_spec.rb
171
174
  - spec/shortcode_spec.rb
172
175
  - spec/spec_helper.rb
173
176
  - spec/support/fixtures.rb
@@ -175,6 +178,7 @@ test_files:
175
178
  - spec/support/fixtures/complex_snippet_output.html
176
179
  - spec/support/fixtures/full_quote.txt
177
180
  - spec/support/fixtures/full_quote_output.html
181
+ - spec/support/fixtures/long_text.txt
178
182
  - spec/support/fixtures/quote_with_extras.txt
179
183
  - spec/support/fixtures/quote_with_extras_output.html
180
184
  - spec/support/fixtures/simple_list.txt