gust 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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