gust 0.1.0 → 0.1.1

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.
Files changed (4) hide show
  1. data/gust.gemspec +3 -3
  2. data/lib/gust.rb +6 -7
  3. data/spec/gust_spec.rb +45 -24
  4. metadata +79 -55
data/gust.gemspec CHANGED
@@ -3,11 +3,11 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "gust"
6
- s.version = '0.1.0'
6
+ s.version = '0.1.1'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Jeff Kreeftmeijer"]
9
9
  s.email = ["jeff@kreeftmeijer.nl"]
10
- s.homepage = ""
10
+ s.homepage = "https://github.com/jeffkreeftmeijer/gust"
11
11
  s.summary = %q{Syntax highlighting and Markdown/Textile parsing}
12
12
  s.description = %q{Syntax highlighting and Markdown/Textile parsing}
13
13
 
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'rspec', ['~> 2.0']
21
+ s.add_development_dependency 'rspec', ['~> 2.0']
22
22
  s.add_dependency 'pygments.rb', ['~> 0.1.2']
23
23
  s.add_dependency 'kramdown', ['~> 0.13.3']
24
24
  s.add_dependency 'RedCloth', ['~> 4.2.7']
data/lib/gust.rb CHANGED
@@ -5,16 +5,15 @@ require 'RedCloth'
5
5
  class Gust
6
6
 
7
7
  def self.parse(code, options = {})
8
+ return "<div class=\"markup\">#{code}</div>\n" unless options[:filename]
8
9
 
9
- if options[:filename]
10
- code = case options[:filename]
11
- when /.*\.markdown$/ then Kramdown::Document.new(code).to_html
12
- when /.*\.textile$/ then RedCloth.new(code).to_html
13
- else return Pygments.highlight(code, options) rescue code
14
- end
10
+ case options[:filename]
11
+ when /.*\.png$/ then "<div class=\"image\"><img src=\"#{options[:url]}\"/></div>\n"
12
+ when /.*\.markdown$/, /.*\.md$/ then "<div class=\"markup\">#{Kramdown::Document.new(code).to_html}</div>\n"
13
+ when /.*\.textile$/ then "<div class=\"markup\">#{RedCloth.new(code).to_html}</div>\n"
14
+ else Pygments.highlight(code, options) rescue "<div class=\"markup\">#{code}</div>\n"
15
15
  end
16
16
 
17
- "<div class=\"markup\">#{code}</div>\n"
18
17
  end
19
18
 
20
19
  end
data/spec/gust_spec.rb CHANGED
@@ -2,49 +2,70 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  require 'gust'
3
3
 
4
4
  describe Gust do
5
-
5
+
6
+ shared_examples_for 'a markdown file' do
7
+
8
+ it { should == "<div class=\"markup\"><p><em>foo</em></p>\n</div>\n" }
9
+
10
+ end
11
+
6
12
  describe '.parse' do
7
-
13
+
8
14
  context 'when only passing "foo" as a string' do
9
-
15
+
10
16
  subject { Gust.parse('foo') }
11
-
17
+
12
18
  it { should == "<div class=\"markup\">foo</div>\n" }
13
-
19
+
14
20
  end
15
-
21
+
16
22
  context 'with an unknown filename' do
17
-
23
+
18
24
  subject { Gust.parse('foo', :filename => 'foo.bar') }
19
-
25
+
20
26
  it { should == "<div class=\"markup\">foo</div>\n" }
21
-
27
+
22
28
  end
23
-
29
+
24
30
  context 'with a ruby file' do
25
-
31
+
26
32
  subject { Gust.parse('foo', :filename => 'foo.rb') }
27
-
33
+
28
34
  it { should == "<div class=\"highlight\"><pre><span class=\"n\">foo</span>\n</pre>\n</div>\n" }
29
-
35
+
30
36
  end
31
-
37
+
32
38
  context 'with a markdown file' do
33
-
39
+
34
40
  subject { Gust.parse('*foo*', :filename => 'foo.markdown') }
35
-
36
- it { should == "<div class=\"markup\"><p><em>foo</em></p>\n</div>\n" }
37
-
41
+
42
+ it_should_behave_like 'a markdown file'
43
+
38
44
  end
39
-
45
+
46
+ context 'with a markdown file that uses the (wrong) .md extension' do
47
+
48
+ subject { Gust.parse('*foo*', :filename => 'foo.md') }
49
+
50
+ it_should_behave_like 'a markdown file'
51
+
52
+ end
53
+
40
54
  context 'with a textile file' do
41
-
55
+
42
56
  subject { Gust.parse('*foo*', :filename => 'foo.textile') }
43
-
57
+
44
58
  it { should == "<div class=\"markup\"><p><strong>foo</strong></p></div>\n" }
45
-
59
+
46
60
  end
47
-
61
+
62
+ context 'with a .png file' do
63
+ subject { Gust.parse('', :filename => 'foo.png', :url => 'http://jeffkreeftmeijer.com/images/carnivore_capybara.png') }
64
+
65
+ it { should == "<div class=\"image\"><img src=\"http://jeffkreeftmeijer.com/images/carnivore_capybara.png\"/></div>\n" }
66
+
67
+ end
68
+
48
69
  end
49
-
70
+
50
71
  end
metadata CHANGED
@@ -1,68 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gust
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Jeff Kreeftmeijer
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2011-06-26 00:00:00.000000000 +02:00
16
+
17
+ date: 2011-06-27 00:00:00 +02:00
13
18
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
16
21
  name: rspec
17
- requirement: &2154021680 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ~>
21
- - !ruby/object:Gem::Version
22
- version: '2.0'
23
- type: :runtime
24
22
  prerelease: false
25
- version_requirements: *2154021680
26
- - !ruby/object:Gem::Dependency
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 0
30
+ version: "2.0"
31
+ type: :development
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
27
34
  name: pygments.rb
28
- requirement: &2154021180 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ requirements:
31
38
  - - ~>
32
- - !ruby/object:Gem::Version
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 0
42
+ - 1
43
+ - 2
33
44
  version: 0.1.2
34
45
  type: :runtime
35
- prerelease: false
36
- version_requirements: *2154021180
37
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *id002
47
+ - !ruby/object:Gem::Dependency
38
48
  name: kramdown
39
- requirement: &2154020700 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
49
+ prerelease: false
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ requirements:
42
52
  - - ~>
43
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ - 13
57
+ - 3
44
58
  version: 0.13.3
45
59
  type: :runtime
46
- prerelease: false
47
- version_requirements: *2154020700
48
- - !ruby/object:Gem::Dependency
60
+ version_requirements: *id003
61
+ - !ruby/object:Gem::Dependency
49
62
  name: RedCloth
50
- requirement: &2154020220 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
63
+ prerelease: false
64
+ requirement: &id004 !ruby/object:Gem::Requirement
65
+ requirements:
53
66
  - - ~>
54
- - !ruby/object:Gem::Version
67
+ - !ruby/object:Gem::Version
68
+ segments:
69
+ - 4
70
+ - 2
71
+ - 7
55
72
  version: 4.2.7
56
73
  type: :runtime
57
- prerelease: false
58
- version_requirements: *2154020220
74
+ version_requirements: *id004
59
75
  description: Syntax highlighting and Markdown/Textile parsing
60
- email:
76
+ email:
61
77
  - jeff@kreeftmeijer.nl
62
78
  executables: []
79
+
63
80
  extensions: []
81
+
64
82
  extra_rdoc_files: []
65
- files:
83
+
84
+ files:
66
85
  - .gitignore
67
86
  - .rspec
68
87
  - Gemfile
@@ -71,29 +90,34 @@ files:
71
90
  - lib/gust.rb
72
91
  - spec/gust_spec.rb
73
92
  has_rdoc: true
74
- homepage: ''
93
+ homepage: https://github.com/jeffkreeftmeijer/gust
75
94
  licenses: []
95
+
76
96
  post_install_message:
77
97
  rdoc_options: []
78
- require_paths:
98
+
99
+ require_paths:
79
100
  - lib
80
- required_ruby_version: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- required_rubygems_version: !ruby/object:Gem::Requirement
87
- none: false
88
- requirements:
89
- - - ! '>='
90
- - !ruby/object:Gem::Version
91
- version: '0'
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ segments:
113
+ - 0
114
+ version: "0"
92
115
  requirements: []
116
+
93
117
  rubyforge_project: gust
94
- rubygems_version: 1.6.2
118
+ rubygems_version: 1.3.6
95
119
  signing_key:
96
120
  specification_version: 3
97
121
  summary: Syntax highlighting and Markdown/Textile parsing
98
- test_files:
122
+ test_files:
99
123
  - spec/gust_spec.rb