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.
@@ -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
- s.add_dependency "sdoc"
23
- s.add_dependency "thor"
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
@@ -14,5 +14,6 @@ module Docster
14
14
  DocGenerator.generate! options.name, options.groups, (options.without_ruby ? nil : options.ruby_version)
15
15
  end
16
16
 
17
+ # TODO: #open should generate, then open merged docs. #generate should just RE-generate and not open.
17
18
  end
18
19
  end
@@ -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
- `sdoc-merge --title "#{project_name}" --op "#{project_path_for project_name}" --names "#{names}" #{paths}`
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
- `sdoc -o "#{doc_path_for options[:name], options[:version]}" "#{options[:path]}"`
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
- `wget http://ftp.ruby-lang.org/pub/ruby/#{version.split('.')[0..1].join('.')}/#{ruby_archive} -O "#{archive_path}"`
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
- `tar -xf "#{archive_path}" -C "#{tmp_path}"`
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
@@ -1,3 +1,3 @@
1
1
  module Docster
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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.1
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-28 00:00:00.000000000 Z
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: &2164266320 !ruby/object:Gem::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: *2164266320
25
+ version_requirements: *2173340400
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: thor
28
- requirement: &2164265900 !ruby/object:Gem::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: *2164265900
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: &2164265400 !ruby/object:Gem::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: *2164265400
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: 3265255303828275375
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: 3265255303828275375
100
+ hash: -4609553935689345376
90
101
  requirements: []
91
102
  rubyforge_project: docster
92
103
  rubygems_version: 1.8.6