wptemplates 0.0.3

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.
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ describe Wptemplates do
4
+
5
+ it "parses some text into a soup with a single text node" do
6
+ parsed = subject.parse(" some text ")
7
+ expect(parsed.length).to eq(1)
8
+ expect(parsed.text).to eq(" some text ")
9
+ expect(parsed[0].text).to eq(" some text ")
10
+ expect(parsed.templates).to eq([])
11
+ end
12
+
13
+ it "parses the empty string into a soup with a single empty text node" do
14
+ parsed = subject.parse("")
15
+ expect(parsed.length).to eq(1)
16
+ expect(parsed.text).to eq("")
17
+ expect(parsed[0].text).to eq("")
18
+ expect(parsed.templates).to eq([])
19
+ end
20
+
21
+ it "removes normal html comments" do
22
+ parsed = subject.parse("a<!-- b -->a")
23
+ expect(parsed.length).to eq(1)
24
+ expect(parsed.text).to eq("aa")
25
+ expect(parsed[0].text).to eq("aa")
26
+ expect(parsed.templates).to eq([])
27
+ expect(parsed.links).to eq([])
28
+ end
29
+
30
+ it "removes html comments with excess minus" do
31
+ parsed = subject.parse("a<!--- b -->a")
32
+ expect(parsed.length).to eq(1)
33
+ expect(parsed.text).to eq("aa")
34
+ expect(parsed[0].text).to eq("aa")
35
+ expect(parsed.templates).to eq([])
36
+ expect(parsed.links).to eq([])
37
+ end
38
+
39
+ it "leaves stuff between two comments" do
40
+ parsed = subject.parse("a<!--- b -->c<!--- b -->a")
41
+ expect(parsed.length).to eq(1)
42
+ expect(parsed.text).to eq("aca")
43
+ expect(parsed[0].text).to eq("aca")
44
+ expect(parsed.templates).to eq([])
45
+ expect(parsed.links).to eq([])
46
+ end
47
+
48
+ it "removes html comments with invalid combinations of <!-> in between" do
49
+ parsed = subject.parse("d1<!-- d2 -><!-- d3 -- >d4<! -- > d6-->d6")
50
+ expect(parsed.length).to eq(1)
51
+ expect(parsed.text).to eq("d1d6")
52
+ expect(parsed[0].text).to eq("d1d6")
53
+ expect(parsed.templates).to eq([])
54
+ expect(parsed.links).to eq([])
55
+ end
56
+
57
+ it "removes html comments which remove links closing tag" do
58
+ parsed = subject.parse("[[a|<!-- ]] -->")
59
+ expect(parsed.length).to eq(1)
60
+ expect(parsed.text).to eq("[[a|")
61
+ expect(parsed[0].text).to eq("[[a|")
62
+ expect(parsed.templates).to eq([])
63
+ expect(parsed.links).to eq([])
64
+ end
65
+
66
+ it "removes html comments which remove links opening tag" do
67
+ parsed = subject.parse("<!-- [[a| -->]]")
68
+ expect(parsed.length).to eq(1)
69
+ expect(parsed.text).to eq("]]")
70
+ expect(parsed[0].text).to eq("]]")
71
+ expect(parsed.templates).to eq([])
72
+ expect(parsed.links).to eq([])
73
+ end
74
+
75
+ end
@@ -0,0 +1,4 @@
1
+
2
+ task :browser do
3
+ ENV["DEVELOPMENT_WEBBROWSER"] = "chromium"
4
+ end
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,7 @@
1
+ desc "Open an irb session preloaded with wptemplates library"
2
+ task :console do
3
+ ARGV.clear
4
+ ARGV.push "-f", "-I", "lib", "-r", "./tasks/irbrc"
5
+ require 'irb'
6
+ IRB.start
7
+ end
data/tasks/irbrc.rb ADDED
@@ -0,0 +1,22 @@
1
+
2
+ #require 'wirble'
3
+ #%w{init colorize}.each { |str| Wirble.send(str) }
4
+
5
+ require 'irb/completion'
6
+
7
+ require 'irb/ext/save-history'
8
+ IRB.conf[:SAVE_HISTORY] = 500
9
+ IRB.conf[:HISTORY_FILE] = ".irb_history"
10
+
11
+ IRB.conf[:AUTO_INDENT] = true
12
+
13
+ require 'pp'
14
+ require 'wptemplates'
15
+
16
+ puts "Welcome to Wptemplates #{Wptemplates::VERSION}!"
17
+
18
+ class Symbol
19
+ def to_proc
20
+ proc { |obj, *args| obj.send(self, *args) }
21
+ end
22
+ end
data/tasks/rdoc.rake ADDED
@@ -0,0 +1,16 @@
1
+ require 'rdoc/task'
2
+
3
+ RDoc::Task.new(:rdoc) do |rdoc|
4
+ rdoc.rdoc_dir = 'rdoc'
5
+ rdoc.title = 'Wptemplates'
6
+ rdoc.options << '--line-numbers'
7
+ rdoc.main = 'README.rdoc'
8
+ rdoc.rdoc_files.include('README.rdoc', 'lib/**/*.rb')
9
+ end
10
+
11
+ namespace :rdoc do
12
+ desc "Open the rdocs in browser"
13
+ task :open => [:rdoc, :browser] do
14
+ sh "#{ENV["DEVELOPMENT_WEBBROWSER"]} rdoc/index.html"
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+
2
+ task :spec => 'spec/examples_spec.rb'
3
+
4
+ task 'spec/examples_spec.rb' => 'README.md' do
5
+ puts "Regenerating spec/examples_spec.rb"
6
+ readme = File.open('README.md'){ |f| f.read }
7
+ test = "require 'spec_helper'\n\ndescribe 'examples' do\n\n"
8
+ readme.scan(/<\!-- *EXAMPLES:(.*?) *-->(.*?)<\!-- *\/EXAMPLES *-->/m) do |name,code|
9
+ if name == "INIT"
10
+ test << code
11
+ else
12
+ test << " it '#{name}' do\n"
13
+ code.lines.each do |l|
14
+ (/^ *(?<actual>.*?) *# *=> *(?<expected>.*)$/.match(l) do |m|
15
+ test << " expect(#{m[:actual]}).to eq(#{m[:expected]})\n"
16
+ end) || /^\s+(#.*)?$/.match(l) || puts("\033[31mLinie not well formed: \033[0m", l)
17
+ end
18
+ test << " end\n"
19
+ end
20
+ end
21
+ test << "\nend\n"
22
+ File.open('spec/examples_spec.rb','w'){ |f| f.puts test }
23
+ end
@@ -0,0 +1,22 @@
1
+
2
+ begin
3
+
4
+ require 'redcarpet'
5
+
6
+ task 'README.html' => 'README.md' do
7
+ puts "Regenerating README.html"
8
+ markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
9
+ html = markdown.render(File.open('README.md'){ |f| f.read })
10
+ File.open('README.html','w'){ |f| f.puts html }
11
+ end
12
+
13
+ namespace :readme do
14
+ desc "Open the README in browser"
15
+ task :open => ['README.html', :browser] do
16
+ sh "#{ENV["DEVELOPMENT_WEBBROWSER"]} README.html"
17
+ end
18
+ end
19
+
20
+ rescue LoadError
21
+ puts "Could not load redcarpet. The README.md rake tasks are not available."
22
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,10 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(:spec)
4
+
5
+ namespace :spec do
6
+ desc "Open coverage report in browser"
7
+ task :open_coverage => :browser do
8
+ sh "#{ENV["DEVELOPMENT_WEBBROWSER"]} coverage/index.html"
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'wptemplates/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "wptemplates"
8
+ spec.version = Wptemplates::VERSION
9
+ spec.authors = ["Bernhard Häussner"]
10
+ spec.email = ["bxt@die-optimisten.net"]
11
+ spec.description = %q{Collect template informations from MediaWiki markup}
12
+ spec.summary = %q{Collect template informations from MediaWiki markup}
13
+ spec.homepage = "https://github.com/bxt/wptemplates"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.required_ruby_version = '>= 1.9' # regex named groups
22
+ spec.add_development_dependency "bundler", "~> 1.3"
23
+ spec.add_development_dependency "rake"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "rdoc"
26
+ spec.add_development_dependency "simplecov"
27
+ #spec.add_development_dependency "wirble"
28
+
29
+ end
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wptemplates
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Bernhard Häussner
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rdoc
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: simplecov
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Collect template informations from MediaWiki markup
95
+ email:
96
+ - bxt@die-optimisten.net
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files: []
100
+ files:
101
+ - .gitignore
102
+ - .rspec
103
+ - .travis.yml
104
+ - Gemfile
105
+ - LICENSE.txt
106
+ - README.md
107
+ - README.rdoc
108
+ - Rakefile
109
+ - lib/wptemplates.rb
110
+ - lib/wptemplates/ast.rb
111
+ - lib/wptemplates/parser.rb
112
+ - lib/wptemplates/preprocessor.rb
113
+ - lib/wptemplates/regexes.rb
114
+ - lib/wptemplates/utils.rb
115
+ - lib/wptemplates/version.rb
116
+ - spec/regexes_spec.rb
117
+ - spec/spec_helper.rb
118
+ - spec/utils_spec.rb
119
+ - spec/wptemplates_links_spec.rb
120
+ - spec/wptemplates_mixed_spec.rb
121
+ - spec/wptemplates_templates_spec.rb
122
+ - spec/wptemplates_text_spec.rb
123
+ - tasks/browser.rake
124
+ - tasks/bundler_gem.rake
125
+ - tasks/console.rake
126
+ - tasks/irbrc.rb
127
+ - tasks/rdoc.rake
128
+ - tasks/readme_examples.rake
129
+ - tasks/readme_html.rake
130
+ - tasks/rspec.rake
131
+ - wptemplates.gemspec
132
+ homepage: https://github.com/bxt/wptemplates
133
+ licenses:
134
+ - MIT
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '1.9'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ segments:
152
+ - 0
153
+ hash: -2296704117666700926
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 1.8.24
157
+ signing_key:
158
+ specification_version: 3
159
+ summary: Collect template informations from MediaWiki markup
160
+ test_files:
161
+ - spec/regexes_spec.rb
162
+ - spec/spec_helper.rb
163
+ - spec/utils_spec.rb
164
+ - spec/wptemplates_links_spec.rb
165
+ - spec/wptemplates_mixed_spec.rb
166
+ - spec/wptemplates_templates_spec.rb
167
+ - spec/wptemplates_text_spec.rb