docster 0.0.1 → 0.0.2
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.
- data/docster.gemspec +3 -2
- data/lib/docster/cli.rb +1 -0
- data/lib/docster/doc_generator.rb +37 -7
- data/lib/docster/version.rb +1 -1
- metadata +21 -10
data/docster.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
%w(sdoc thor colored).each do |dep|
|
23
|
+
s.add_dependency dep
|
24
|
+
end
|
24
25
|
s.add_development_dependency "rake"
|
25
26
|
end
|
data/lib/docster/cli.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
require 'bundler'
|
2
|
+
require 'colored'
|
2
3
|
|
3
4
|
module Docster
|
4
5
|
class RubyNotFound < StandardError; end
|
5
|
-
|
6
|
+
class SdocMergeError < StandardError; end
|
7
|
+
class SdocError < StandardError; end
|
8
|
+
class WgetError < StandardError; end
|
9
|
+
class RubyExtractionError < StandardError; end
|
10
|
+
|
6
11
|
class DocGenerator
|
7
12
|
def self.generate!(project_name, groups, ruby_version)
|
8
13
|
begin
|
@@ -28,7 +33,7 @@ module Docster
|
|
28
33
|
FileUtils.rm_rf project_path_for project_name
|
29
34
|
sdoc_merge project_name, ruby_version
|
30
35
|
end
|
31
|
-
|
36
|
+
|
32
37
|
`open #{File.join project_path_for(project_name), 'index.html'}`
|
33
38
|
ensure
|
34
39
|
cleanup!
|
@@ -39,11 +44,28 @@ module Docster
|
|
39
44
|
def self.sdoc_merge(project_name, ruby_version)
|
40
45
|
names = ruby_version ? [gem_names, 'ruby'].join(',') : gem_names
|
41
46
|
paths = ruby_version ? doc_paths << %Q( "#{doc_path_for 'ruby', ruby_version}") : doc_paths
|
42
|
-
|
47
|
+
|
48
|
+
begin
|
49
|
+
print "Generating project documentation...".yellow
|
50
|
+
raise SdocMergeError unless system %Q(sdoc-merge --title "#{project_name}" --op "#{project_path_for project_name}" --names "#{names}" #{paths} &> /dev/null)
|
51
|
+
puts "done!".green
|
52
|
+
rescue SdocMergeError => e
|
53
|
+
# On error, remove potentially partial documentation
|
54
|
+
FileUtils.rm_rf project_path_for(project_name)
|
55
|
+
raise e
|
56
|
+
end
|
43
57
|
end
|
44
58
|
|
45
|
-
def self.generate_sdoc_for(options = {})
|
46
|
-
|
59
|
+
def self.generate_sdoc_for(options = {})
|
60
|
+
begin
|
61
|
+
print "Generating sdoc for #{options[:name]}-#{options[:version]}...".yellow
|
62
|
+
raise SdocError unless system %Q(sdoc -o "#{doc_path_for options[:name], options[:version]}" "#{options[:path]}" &> /dev/null)
|
63
|
+
puts "done!".green
|
64
|
+
rescue SdocError => e
|
65
|
+
# On error, remove potentially partial documentation
|
66
|
+
FileUtils.rm_rf doc_path_for(options[:name], options[:version])
|
67
|
+
raise e
|
68
|
+
end
|
47
69
|
end
|
48
70
|
|
49
71
|
def self.gems
|
@@ -107,9 +129,17 @@ module Docster
|
|
107
129
|
def self.download_ruby(version)
|
108
130
|
ruby_archive = "ruby-#{version}.tar.bz2"
|
109
131
|
archive_path = File.join tmp_path, ruby_archive
|
110
|
-
|
132
|
+
|
133
|
+
print "Downloading ruby #{version} source from ruby-lang.org, this may take a while...".yellow
|
134
|
+
raise WgetError unless system %Q(wget http://ftp.ruby-lang.org/pub/ruby/#{version.split('.')[0..1].join('.')}/#{ruby_archive} -O "#{archive_path}" &> /dev/null)
|
135
|
+
puts "done!".green
|
136
|
+
|
111
137
|
raise RubyNotFound unless File.size?(archive_path)
|
112
|
-
|
138
|
+
|
139
|
+
print "Extracting ruby...".yellow
|
140
|
+
raise RubyExtractionError unless system %Q(tar -xf "#{archive_path}" -C "#{tmp_path}" &> /dev/null)
|
141
|
+
puts "done!".green
|
142
|
+
|
113
143
|
File.join tmp_path, "ruby-#{version}"
|
114
144
|
end
|
115
145
|
end
|
data/lib/docster/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-12-
|
13
|
+
date: 2011-12-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sdoc
|
17
|
-
requirement: &
|
17
|
+
requirement: &2173340400 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2173340400
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: thor
|
28
|
-
requirement: &
|
28
|
+
requirement: &2173339940 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,21 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2173339940
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: colored
|
39
|
+
requirement: &2173339440 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *2173339440
|
37
48
|
- !ruby/object:Gem::Dependency
|
38
49
|
name: rake
|
39
|
-
requirement: &
|
50
|
+
requirement: &2173339020 !ruby/object:Gem::Requirement
|
40
51
|
none: false
|
41
52
|
requirements:
|
42
53
|
- - ! '>='
|
@@ -44,7 +55,7 @@ dependencies:
|
|
44
55
|
version: '0'
|
45
56
|
type: :development
|
46
57
|
prerelease: false
|
47
|
-
version_requirements: *
|
58
|
+
version_requirements: *2173339020
|
48
59
|
description: Generates searchable documentation for your ruby project
|
49
60
|
email:
|
50
61
|
- info@room118solutions.com
|
@@ -77,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
88
|
version: '0'
|
78
89
|
segments:
|
79
90
|
- 0
|
80
|
-
hash:
|
91
|
+
hash: -4609553935689345376
|
81
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
93
|
none: false
|
83
94
|
requirements:
|
@@ -86,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
97
|
version: '0'
|
87
98
|
segments:
|
88
99
|
- 0
|
89
|
-
hash:
|
100
|
+
hash: -4609553935689345376
|
90
101
|
requirements: []
|
91
102
|
rubyforge_project: docster
|
92
103
|
rubygems_version: 1.8.6
|