docify 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ *.gem
2
+ *.rbc
3
+ *.swp
4
+ *.tmproj
5
+ *~
6
+ .DS_Store
7
+ .\#*
8
+ .bundle
9
+ .config
10
+ .yardoc
11
+ Gemfile.lock
12
+ InstalledFiles
13
+ \#*
14
+ _yardoc
15
+ coverage
16
+ doc/
17
+ lib/bundler/man
18
+ pkg
19
+ rdoc
20
+ spec/reports
21
+ test/tmp
22
+ test/version_tmp
23
+ tmp
24
+ tmtags
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format=nested
3
+ --backtrace
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/bin/docify CHANGED
@@ -66,4 +66,7 @@ begin
66
66
  puts optparse.to_s
67
67
  exit
68
68
  end
69
+ rescue
70
+ puts optparse.to_s
71
+ exit
69
72
  end
@@ -0,0 +1,29 @@
1
+ require File.expand_path('../lib/docify/version', __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "docify"
5
+ s.version = Docify::VERSION.dup
6
+ s.summary = "Terminal tool to render markups into html"
7
+ s.description = "Docify provides a command line tool to render documentation files (RDoc, Markdown, Textile) into nice-looking html."
8
+ s.homepage = "http://github.com/sosedoff/docify"
9
+ s.authors = ["Dan Sosedoff"]
10
+ s.email = ["dan.sosedoff@gmail.com"]
11
+
12
+ s.add_development_dependency 'rake', '~> 0.8'
13
+ s.add_development_dependency 'rspec', '~> 2.5'
14
+ s.add_development_dependency 'ZenTest', '~> 4.5'
15
+ s.add_development_dependency 'simplecov', '~> 0.4'
16
+ s.add_development_dependency 'yard', '~> 0.6'
17
+
18
+ s.add_runtime_dependency 'rdiscount', '~> 1.6.8'
19
+ s.add_runtime_dependency 'RedCloth', '~> 4.2.3'
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
24
+ s.require_paths = ["lib"]
25
+ s.default_executable = 'docify'
26
+
27
+ s.platform = Gem::Platform::RUBY
28
+ s.required_rubygems_version = Gem::Requirement.new('>= 1.3.6') if s.respond_to? :required_rubygems_version=
29
+ end
@@ -1,6 +1,4 @@
1
- require 'github/markup'
2
-
3
- require 'docify/version'
4
1
  require 'docify/format'
5
2
  require 'docify/style'
3
+ require 'docify/markup'
6
4
  require 'docify/document'
@@ -14,7 +14,7 @@ module Docify
14
14
  # Render document by specified format
15
15
  def render(format, embed_css=true)
16
16
  raise ArgumentError, 'Invalid format!' unless FORMATS.include?(format)
17
- result = GitHub::Markup.render("doc.#{format}", File.read(@path))
17
+ result = Docify::Markup.render("doc.#{format}", File.read(@path))
18
18
  if embed_css
19
19
  params = {:title => File.basename(@path), :content => result}
20
20
  params[:css] = Docify::CSS if embed_css
@@ -0,0 +1,62 @@
1
+ if RUBY_VERSION.include?('1.9')
2
+ require 'rdoc/markup/to_html'
3
+ else
4
+ require 'rdoc/generators/html_generator'
5
+ require 'ostruct'
6
+ end
7
+
8
+ module Docify
9
+ module Markup
10
+ extend self
11
+
12
+ # Auto-detect format from filename and render content
13
+ def render(filename, content)
14
+ name = File.basename(filename.to_s.strip)
15
+ raise ArgumentError, 'Filename required!' if name.empty?
16
+ format = detect_format(name)
17
+ format == :text ? content : self.send(format, content)
18
+ end
19
+
20
+ # Render content for Markdown
21
+ def markdown(content)
22
+ Markdown.new(content).to_html
23
+ end
24
+
25
+ if RUBY_VERSION.include?('1.9')
26
+ # Render content for RDoc
27
+ def rdoc(content)
28
+ RDoc::Markup::ToHtml.new.convert(content)
29
+ end
30
+ else
31
+ # Render content for RDoc
32
+ def rdoc(content)
33
+ simple_markup = SM::SimpleMarkup.new
34
+ generator = Generators::HyperlinkHtml.new('', OpenStruct.new)
35
+ simple_markup.add_special(/((link:|https?:|mailto:|ftp:|www\.)\S+\w)/, :HYPERLINK)
36
+ simple_markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\.\S+?\])/, :TIDYLINK)
37
+ simple_markup.convert(content, generator)
38
+ end
39
+ end
40
+
41
+ # Render content for Textile
42
+ def textile(content)
43
+ RedCloth.new(content).to_html
44
+ end
45
+
46
+ protected
47
+
48
+ # Detect markup format from filename
49
+ def detect_format(filename)
50
+ case(filename)
51
+ when /\.rdoc/i
52
+ :rdoc
53
+ when /\.(md|mkdn?|mdown|markdown)/i
54
+ :markdown
55
+ when /\.textile/i
56
+ :textile
57
+ else
58
+ :text
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,10 +1,11 @@
1
1
  module Docify
2
- REGEX = /(\{\{([a-z\-\_]{1,})\}\})/i
2
+ REGEX = /(\{\{([a-z\-\_]{1,})\}\})/i
3
3
 
4
4
  TEMPLATE = <<END_TEMPLATE
5
5
  <html>
6
6
  <head>
7
7
  <title>{{title}}</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
8
9
  {{css}}
9
10
  </head>
10
11
  <body>
@@ -1,3 +1,3 @@
1
1
  module Docify
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'.freeze
3
3
  end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Docify' do
4
+ it 'should validate format' do
5
+ Docify::FORMATS.each { |f| Docify.valid_format?(f).should == true }
6
+ Docify.valid_format?('txt').should == false
7
+ end
8
+
9
+ it 'should detect valid format' do
10
+ README_FILES.each do |k,v|
11
+ Docify.detect_format(k).should == v
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Document' do
4
+ it 'should raise exception on invalid input file' do
5
+ proc { Docify::Document.new('qwe123')}.should raise_error ArgumentError, "File [qwe123] does not exist!"
6
+ proc { Docify::Document.new('/tmp') }.should raise_error ArgumentError, "File required!"
7
+ end
8
+
9
+ it 'should render correct layout' do
10
+ doc = Docify::Document.new('README.rdoc')
11
+ output = doc.render('rdoc')
12
+ output.should match(/<meta http-equiv="Content-Type" content="text\/html; charset=UTF-8" \/>/)
13
+ output.should match(/<title>README.rdoc<\/title>/)
14
+ end
15
+
16
+ it 'should raise an exception on invalid output path' do
17
+ doc = Docify::Document.new('README.rdoc')
18
+ doc.render('rdoc')
19
+ proc { doc.save_to('~/blah') }.should raise_error ArgumentError, "Output path does not exist!"
20
+ proc { doc.save_to('/tmp') }.should raise_error ArgumentError, "Output path should be a file!"
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ $:.unshift File.expand_path("../..", __FILE__)
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start do
5
+ add_group 'Docify', 'lib/docify'
6
+ end
7
+
8
+ require 'docify'
9
+
10
+ README_FILES = {
11
+ 'README' => 'rdoc',
12
+ 'README.rdoc' => 'rdoc',
13
+ 'README.md' => 'markdown',
14
+ 'README.markdown' => 'markdown',
15
+ 'README.textile' => 'textile',
16
+ 'README.txt' => 'rdoc',
17
+ 'README.foo' => 'rdoc'
18
+ }
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docify
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
5
+ version: 1.0.1
11
6
  platform: ruby
12
7
  authors:
13
8
  - Dan Sosedoff
@@ -15,59 +10,89 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-03-17 00:00:00 -05:00
13
+ date: 2011-06-13 00:00:00 -05:00
19
14
  default_executable: docify
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
22
- name: github-markup
17
+ name: rake
23
18
  prerelease: false
24
19
  requirement: &id001 !ruby/object:Gem::Requirement
25
20
  none: false
26
21
  requirements:
27
- - - ">="
22
+ - - ~>
28
23
  - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 0
32
- - 5
33
- - 3
34
- version: 0.5.3
35
- type: :runtime
24
+ version: "0.8"
25
+ type: :development
36
26
  version_requirements: *id001
37
27
  - !ruby/object:Gem::Dependency
38
- name: rdiscount
28
+ name: rspec
39
29
  prerelease: false
40
30
  requirement: &id002 !ruby/object:Gem::Requirement
41
31
  none: false
42
32
  requirements:
43
- - - ">="
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: "2.5"
36
+ type: :development
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: ZenTest
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: "4.5"
47
+ type: :development
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: simplecov
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ version: "0.4"
58
+ type: :development
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: yard
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: "0.6"
69
+ type: :development
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: rdiscount
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
44
78
  - !ruby/object:Gem::Version
45
- hash: 31
46
- segments:
47
- - 1
48
- - 6
49
- - 8
50
79
  version: 1.6.8
51
80
  type: :runtime
52
- version_requirements: *id002
81
+ version_requirements: *id006
53
82
  - !ruby/object:Gem::Dependency
54
83
  name: RedCloth
55
84
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
85
+ requirement: &id007 !ruby/object:Gem::Requirement
57
86
  none: false
58
87
  requirements:
59
- - - ">="
88
+ - - ~>
60
89
  - !ruby/object:Gem::Version
61
- hash: 49
62
- segments:
63
- - 4
64
- - 2
65
- - 3
66
90
  version: 4.2.3
67
91
  type: :runtime
68
- version_requirements: *id003
92
+ version_requirements: *id007
69
93
  description: Docify provides a command line tool to render documentation files (RDoc, Markdown, Textile) into nice-looking html.
70
- email: dan.sosedoff@gmail.com
94
+ email:
95
+ - dan.sosedoff@gmail.com
71
96
  executables:
72
97
  - docify
73
98
  extensions: []
@@ -75,14 +100,22 @@ extensions: []
75
100
  extra_rdoc_files: []
76
101
 
77
102
  files:
103
+ - .gitignore
104
+ - .rspec
105
+ - Gemfile
106
+ - README.rdoc
78
107
  - Rakefile
79
108
  - bin/docify
109
+ - docify.gemspec
110
+ - lib/docify.rb
80
111
  - lib/docify/document.rb
81
112
  - lib/docify/format.rb
113
+ - lib/docify/markup.rb
82
114
  - lib/docify/style.rb
83
115
  - lib/docify/version.rb
84
- - lib/docify.rb
85
- - README.rdoc
116
+ - spec/docify_spec.rb
117
+ - spec/document_spec.rb
118
+ - spec/spec_helper.rb
86
119
  has_rdoc: true
87
120
  homepage: http://github.com/sosedoff/docify
88
121
  licenses: []
@@ -97,25 +130,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
130
  requirements:
98
131
  - - ">="
99
132
  - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
133
  version: "0"
104
134
  required_rubygems_version: !ruby/object:Gem::Requirement
105
135
  none: false
106
136
  requirements:
107
137
  - - ">="
108
138
  - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
139
+ version: 1.3.6
113
140
  requirements: []
114
141
 
115
142
  rubyforge_project:
116
- rubygems_version: 1.5.2
143
+ rubygems_version: 1.6.2
117
144
  signing_key:
118
145
  specification_version: 3
119
- summary: Docify - Render documentation with favorite markup into html.
120
- test_files: []
121
-
146
+ summary: Terminal tool to render markups into html
147
+ test_files:
148
+ - spec/docify_spec.rb
149
+ - spec/document_spec.rb
150
+ - spec/spec_helper.rb