upmark 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 05a88fea05d73c8e0e6b6283687fde275582f030
4
+ data.tar.gz: ca3431e72f14140a5e558dc74d275390c010a423
5
+ SHA512:
6
+ metadata.gz: 190e387ab1335b918dc81d002b14acd97ffe1c42b8181066018908cefc4fe9729fc29081e64908d2f5f94ead4836d22abb316078c3b74c8929ce0f1dab6dcaa4
7
+ data.tar.gz: a200693de5b909b23d4e385fa769dfd0588531621587e071b2bde4c4fe126033e66293cd02b93b8c5e05a61df6294b779f2403d83c45212c8a37a002a40648ee
data/README.md CHANGED
@@ -49,4 +49,4 @@ Upmark defines a parsing expression grammar (PEG) using the very awesome [Parsle
49
49
 
50
50
  ## License
51
51
 
52
- Upmark is Copyright (c) 2011 The Conversation Media Group and distributed under the MIT license.
52
+ Upmark is Copyright (c) 2014 The Conversation Media Group and distributed under the MIT license.
@@ -2,12 +2,12 @@ require "parslet"
2
2
 
3
3
  require "core_ext/array"
4
4
 
5
+ require 'upmark/errors'
5
6
  require "upmark/parser/xml"
6
7
  require 'upmark/transform_helpers'
7
8
  require "upmark/transform/markdown"
8
9
  require "upmark/transform/normalise"
9
10
  require "upmark/transform/preprocess"
10
- require "upmark/version"
11
11
 
12
12
  module Upmark
13
13
  def self.convert(html)
@@ -28,5 +28,7 @@ module Upmark
28
28
  ast = ast.gsub(/\n(\s*\n)+/, "\n\n")
29
29
 
30
30
  ast.strip
31
+ rescue Parslet::ParseFailed
32
+ raise Upmark::ParseFailed
31
33
  end
32
34
  end
@@ -0,0 +1,3 @@
1
+ module Upmark
2
+ ParseFailed = Class.new(StandardError)
3
+ end
@@ -172,4 +172,14 @@ organic
172
172
  MD
173
173
  end
174
174
  end
175
+
176
+ context "unbalanced elements" do
177
+ let(:html) { "<span><span>foo</span>" }
178
+
179
+ it "should raise an exception" do
180
+ expect {
181
+ Upmark.convert(html)
182
+ }.to raise_error(Upmark::ParseFailed)
183
+ end
184
+ end
175
185
  end
@@ -2,6 +2,11 @@ require "parslet/rig/rspec"
2
2
  require "rspec"
3
3
  require "simplecov"
4
4
 
5
- SimpleCov.start
5
+ if ENV["BUILDBOX"]
6
+ SimpleCov.start do
7
+ add_filter "spec/"
8
+ add_filter "vendor/bundle/"
9
+ end
10
+ end
6
11
 
7
12
  require "upmark"
metadata CHANGED
@@ -1,65 +1,79 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Josh Bassett
9
8
  - Gus Gollings
9
+ - James Healy
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-08-02 00:00:00.000000000 Z
13
+ date: 2014-07-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
17
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
18
  requirements:
20
- - - ! '>='
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ - - "<"
23
+ - !ruby/object:Gem::Version
24
+ version: '2.99'
25
+ type: :development
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - "~>"
30
+ - !ruby/object:Gem::Version
31
+ version: '2.0'
32
+ - - "<"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.99'
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
21
40
  - !ruby/object:Gem::Version
22
41
  version: '0'
23
42
  type: :development
24
43
  prerelease: false
25
44
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
45
  requirements:
28
- - - ! '>='
46
+ - - ">="
29
47
  - !ruby/object:Gem::Version
30
48
  version: '0'
31
49
  - !ruby/object:Gem::Dependency
32
50
  name: simplecov
33
51
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
52
  requirements:
36
- - - ! '>='
53
+ - - ">="
37
54
  - !ruby/object:Gem::Version
38
55
  version: '0'
39
56
  type: :development
40
57
  prerelease: false
41
58
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
59
  requirements:
44
- - - ! '>='
60
+ - - ">="
45
61
  - !ruby/object:Gem::Version
46
62
  version: '0'
47
63
  - !ruby/object:Gem::Dependency
48
64
  name: parslet
49
65
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
66
  requirements:
52
- - - ! '>='
67
+ - - '='
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: 1.4.0
55
70
  type: :runtime
56
71
  prerelease: false
57
72
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
73
  requirements:
60
- - - ! '>='
74
+ - - '='
61
75
  - !ruby/object:Gem::Version
62
- version: '0'
76
+ version: 1.4.0
63
77
  description: Upmark has the skills to convert your HTML to Markdown.
64
78
  email: dev@theconversation.edu.au
65
79
  executables:
@@ -67,55 +81,49 @@ executables:
67
81
  extensions: []
68
82
  extra_rdoc_files: []
69
83
  files:
70
- - .gitignore
71
- - .rspec
72
- - Gemfile
73
- - Gemfile.lock
74
84
  - LICENSE
75
85
  - README.md
76
86
  - Rakefile
77
87
  - bin/upmark
78
- - coverage/.gitkeep
79
88
  - lib/core_ext/array.rb
80
89
  - lib/upmark.rb
90
+ - lib/upmark/errors.rb
81
91
  - lib/upmark/parser/xml.rb
82
92
  - lib/upmark/transform/ignore.rb
83
93
  - lib/upmark/transform/markdown.rb
84
94
  - lib/upmark/transform/normalise.rb
85
95
  - lib/upmark/transform/preprocess.rb
86
96
  - lib/upmark/transform_helpers.rb
87
- - lib/upmark/version.rb
88
97
  - spec/acceptance/upmark_spec.rb
89
98
  - spec/spec_helper.rb
90
99
  - spec/unit/lib/upmark/parser/xml_spec.rb
91
100
  - spec/unit/lib/upmark/transform/markdown_spec.rb
92
- - upmark.gemspec
93
101
  homepage: http://github.com/conversation/upmark
94
102
  licenses: []
103
+ metadata: {}
95
104
  post_install_message:
96
105
  rdoc_options: []
97
106
  require_paths:
98
107
  - lib
99
108
  required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
109
  requirements:
102
- - - ! '>='
110
+ - - ">="
103
111
  - !ruby/object:Gem::Version
104
112
  version: '0'
105
113
  required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
114
  requirements:
108
- - - ! '>='
115
+ - - ">="
109
116
  - !ruby/object:Gem::Version
110
117
  version: '0'
111
118
  requirements: []
112
119
  rubyforge_project: upmark
113
- rubygems_version: 1.8.23
120
+ rubygems_version: 2.2.2
114
121
  signing_key:
115
- specification_version: 3
122
+ specification_version: 4
116
123
  summary: A HTML to Markdown converter.
117
124
  test_files:
118
- - spec/acceptance/upmark_spec.rb
119
- - spec/spec_helper.rb
120
125
  - spec/unit/lib/upmark/parser/xml_spec.rb
121
126
  - spec/unit/lib/upmark/transform/markdown_spec.rb
127
+ - spec/spec_helper.rb
128
+ - spec/acceptance/upmark_spec.rb
129
+ has_rdoc:
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- .bundle
3
- coverage
4
- .rvmrc
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in upmark.gemspec
4
- gemspec
@@ -1,34 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- upmark (0.1.4)
5
- parslet
6
-
7
- GEM
8
- remote: http://rubygems.org/
9
- specs:
10
- blankslate (2.1.2.4)
11
- diff-lcs (1.1.3)
12
- multi_json (1.0.3)
13
- parslet (1.4.0)
14
- blankslate (~> 2.0)
15
- rspec (2.6.0)
16
- rspec-core (~> 2.6.0)
17
- rspec-expectations (~> 2.6.0)
18
- rspec-mocks (~> 2.6.0)
19
- rspec-core (2.6.4)
20
- rspec-expectations (2.6.0)
21
- diff-lcs (~> 1.1.2)
22
- rspec-mocks (2.6.0)
23
- simplecov (0.5.3)
24
- multi_json (~> 1.0.3)
25
- simplecov-html (~> 0.5.3)
26
- simplecov-html (0.5.3)
27
-
28
- PLATFORMS
29
- ruby
30
-
31
- DEPENDENCIES
32
- rspec
33
- simplecov
34
- upmark!
@@ -1,3 +0,0 @@
1
- module Upmark
2
- VERSION = "0.1.4"
3
- end
@@ -1,26 +0,0 @@
1
- # encoding: utf-8
2
-
3
- $:.push File.expand_path("../lib", __FILE__)
4
-
5
- require "upmark/version"
6
-
7
- Gem::Specification.new do |s|
8
- s.name = "upmark"
9
- s.version = Upmark::VERSION
10
- s.authors = ["Josh Bassett", "Gus Gollings"]
11
- s.email = "dev@theconversation.edu.au"
12
- s.homepage = "http://github.com/conversation/upmark"
13
- s.summary = %q{A HTML to Markdown converter.}
14
- s.description = %q{Upmark has the skills to convert your HTML to Markdown.}
15
-
16
- s.rubyforge_project = "upmark"
17
-
18
- s.files = `git ls-files`.split("\n")
19
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
- s.executables = `git ls-files -- bin/*`.split("\n").map {|f| File.basename(f) }
21
-
22
- s.add_development_dependency "rspec"
23
- s.add_development_dependency "simplecov"
24
-
25
- s.add_runtime_dependency "parslet"
26
- end