sdoc_all 0.1.0 → 0.2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,32 +1,57 @@
1
1
  class SdocAll
2
2
  class Plugins < Base
3
- def self.each(plugins_path, &block)
4
- Dir[plugins_path + '*'].each(&block)
3
+ def initialize(config)
4
+ config ||= {}
5
+ config = {:path => config} unless config.is_a?(Hash)
6
+
7
+ config[:path] ||= sources_path
8
+
9
+ @config = {
10
+ :update => config.delete(:update) != false,
11
+ :path => Pathname.new(config.delete(:path)).expand_path,
12
+ :only => config_only_option(config),
13
+ :exclude => config_exclude_option(config),
14
+ }
15
+
16
+ unless @config[:path].directory?
17
+ raise ConfigError.new("path #{@config[:path]} is not a directory")
18
+ end
19
+
20
+ raise_unknown_options_if_not_blank!(config)
5
21
  end
6
22
 
7
- def self.update_sources(options = {})
8
- each(options[:plugins_path]) do |plugin|
9
- Dir.chdir(plugin) do
10
- system('git fetch origin && git reset --hard HEAD')
23
+ def add_tasks(options = {})
24
+ plugins = @config[:path].children.map do |path|
25
+ path if path.directory?
26
+ end.compact
27
+
28
+ plugins.delete_if{ |plugin| !config[:only].include?(plugin.basename.to_s.downcase) } if config[:only]
29
+ plugins.delete_if{ |plugin| config[:exclude].include?(plugin.basename.to_s.downcase) }
30
+
31
+ if config[:update] && options[:update]
32
+ plugins.each do |plugin|
33
+ if (plugin + '.git').directory?
34
+ Dir.chdir(plugin) do
35
+ Base.system('git fetch origin && git reset --hard origin')
36
+ end
37
+ end
11
38
  end
12
39
  end
13
- end
14
40
 
15
- def self.add_rdoc_tasks(options = {})
16
- each(options[:plugins_path]) do |plugin|
41
+ plugins.each do |plugin|
42
+ paths = Rake::FileList.new
17
43
  Dir.chdir(plugin) do
18
- pathes = Rake::FileList.new
19
- pathes.include('lib/**/*.rb')
20
- pathes.include('README*')
21
- pathes.include('CHANGELOG*')
22
- plugin_name = File.basename(plugin)
23
- add_rdoc_task(
24
- :name_parts => [plugin_name],
25
- :src_path => plugin,
26
- :doc_path => "plugins/#{plugin_name}",
27
- :pathes => pathes.resolve
28
- )
44
+ paths.include('lib/**/*.rb')
45
+ paths.include('README*')
46
+ paths.include('CHANGELOG*')
47
+ paths.resolve
29
48
  end
49
+ Base.add_task(
50
+ :src_path => plugin,
51
+ :doc_path => "plugins.#{plugin.basename}",
52
+ :paths => paths.to_a,
53
+ :title => "plugins: #{plugin.basename}"
54
+ )
30
55
  end
31
56
  end
32
57
  end
@@ -1,51 +1,69 @@
1
1
  class SdocAll
2
2
  class Rails < Base
3
- def self.each
4
- Gem.source_index.search(Gem::Dependency.new('rails', :all)).each do |spec|
5
- yield spec.full_name, spec.version.to_s
3
+ def initialize(config)
4
+ config ||= {}
5
+ config = {:version => config} unless config.is_a?(Hash)
6
+
7
+ if config[:version]
8
+ unless self.class.versions.include?(config[:version])
9
+ raise ConfigError.new("you don't have rails #{config[:version]} installed")
10
+ end
11
+ else
12
+ if self.class.versions.empty?
13
+ raise ConfigError.new("you don't have any rails versions installed")
14
+ end
6
15
  end
16
+
17
+ @config = {
18
+ :version => config.delete(:version) || self.class.versions.last,
19
+ }
20
+
21
+ raise_unknown_options_if_not_blank!(config)
7
22
  end
8
23
 
9
- def self.update_sources(options = {})
10
- to_clear = Dir['rails-*']
11
- each do |rails, version|
12
- to_clear.delete(rails)
13
- remove_if_present(rails) if options[:force]
14
- unless File.directory?(rails)
15
- with_env 'VERSION', version do
16
- system('rails', rails, '--freeze')
17
- end
24
+ def add_tasks(options = {})
25
+ version = @config[:version]
26
+ path = sources_path + version
27
+
28
+ unless path.directory?
29
+ Base.remove_if_present(sources_path)
30
+ sources_path
31
+ Base.with_env 'VERSION', version do
32
+ Base.system('rails', path, '--freeze')
18
33
  end
19
34
  end
20
- to_clear.each do |rails|
21
- remove_if_present(rails)
22
- end
23
- end
24
35
 
25
- def self.add_rdoc_tasks(options = {})
26
- each do |rails, version|
27
- if File.directory?(rails)
28
- Dir.chdir(rails) do
29
- pathes = Rake::FileList.new
30
- File.open('vendor/rails/railties/lib/tasks/documentation.rake') do |f|
31
- true until f.readline['Rake::RDocTask.new("rails")']
32
- until (line = f.readline.strip) == '}'
33
- if line['rdoc.rdoc_files.include']
34
- pathes.include(line[/'(.*)'/, 1])
35
- elsif line['rdoc.rdoc_files.exclude']
36
- pathes.exclude(line[/'(.*)'/, 1])
37
- end
38
- end
36
+ paths = Rake::FileList.new
37
+ Dir.chdir(path) do
38
+ File.open('vendor/rails/railties/lib/tasks/documentation.rake') do |f|
39
+ true until f.readline['Rake::RDocTask.new("rails")']
40
+ until (line = f.readline.strip) == '}'
41
+ if line['rdoc.rdoc_files.include']
42
+ paths.include(line[/'(.*)'/, 1])
43
+ elsif line['rdoc.rdoc_files.exclude']
44
+ paths.exclude(line[/'(.*)'/, 1])
39
45
  end
40
- add_rdoc_task(
41
- :name_parts => [version],
42
- :src_path => rails,
43
- :doc_path => rails,
44
- :pathes => pathes.resolve
45
- )
46
46
  end
47
47
  end
48
+ paths.resolve
49
+ end
50
+ Base.add_task(
51
+ :src_path => path,
52
+ :doc_path => "rails-#{version}",
53
+ :paths => paths.to_a,
54
+ :title => "rails-#{version}"
55
+ )
56
+ end
57
+
58
+ module ClassMethods
59
+ def versions
60
+ [].tap do |versions|
61
+ Gem.source_index.search(Gem::Dependency.new('rails', :all)).each do |spec|
62
+ versions << spec.version
63
+ end
64
+ end.sort.map(&:to_s)
48
65
  end
49
66
  end
67
+ extend ClassMethods
50
68
  end
51
69
  end
data/lib/sdoc_all/ruby.rb CHANGED
@@ -2,58 +2,107 @@ require 'net/ftp'
2
2
 
3
3
  class SdocAll
4
4
  class Ruby < Base
5
- def self.tars
6
- Dir['ruby-*.tar.bz2']
5
+ def initialize(config)
6
+ config ||= {}
7
+ config = {:version => config} unless config.is_a?(Hash)
8
+
9
+ @config = {
10
+ :update => config.delete(:update) != false,
11
+ :version => config.delete(:version),
12
+ }
13
+
14
+ version = @config[:version]
15
+ unless version.present?
16
+ raise ConfigError.new("specify version of ruby (place archive to 'sources' directory or it will be download from ftp://ftp.ruby-lang.org/)")
17
+ end
18
+ self.class.find_or_download_matching_archive(version)
19
+
20
+ raise_unknown_options_if_not_blank!(config)
7
21
  end
8
22
 
9
- def self.rubys
10
- Dir['ruby-*'].select{ |path| File.directory?(path) }
23
+ def add_tasks(options = {})
24
+ archive = self.class.find_or_download_matching_archive(config[:version], :update => config[:update] && options[:update])
25
+ version = archive.full_version
26
+ path = sources_path + version
27
+
28
+ unless path.directory?
29
+ Base.remove_if_present(sources_path)
30
+ case archive.extension
31
+ when 'tar.bz2'
32
+ Base.system('tar', '-xjf', archive.path, '-C', sources_path)
33
+ when 'tar.gz'
34
+ Base.system('tar', '-xzf', archive.path, '-C', sources_path)
35
+ when 'zip'
36
+ Base.system('unzip', '-q', archive.path, '-d', sources_path)
37
+ end
38
+ File.rename(sources_path + "ruby-#{version}", path)
39
+ end
40
+
41
+ Base.add_task(
42
+ :src_path => path,
43
+ :doc_path => "ruby-#{version}",
44
+ :title => "ruby-#{version}"
45
+ )
11
46
  end
12
47
 
13
- def self.update_sources(options = {})
14
- to_clear = tars
15
- Net::FTP.open('ftp.ruby-lang.org') do |ftp|
16
- remote_path = Pathname.new('/pub/ruby')
17
- ftp.debug_mode = true
18
- ftp.passive = true
19
- ftp.login
20
- ftp.chdir(remote_path)
21
- ftp.list('ruby-*.tar.bz2').each do |line|
22
- tar_path, tar = File.split(line.split.last)
23
- to_clear.delete(tar)
24
- remove_if_present(tar) if options[:force]
25
- unless File.exist?(tar) && File.size(tar) == ftp.size(remote_path + tar_path + tar)
26
- ftp.getbinaryfile(remote_path + tar_path + tar)
48
+ private
49
+
50
+ ArchiveInfo = Struct.new(:path, :name, :full_version, :extension, :version)
51
+ module ClassMethods
52
+ def match_ruby_archive(path)
53
+ name = File.basename(path)
54
+ if match = /^ruby-((\d+\.\d+\.\d+)-p(\d+))(?:\.(tar\.(?:gz|bz2)|zip))$/.match(name)
55
+ ArchiveInfo.new.tap do |i|
56
+ i.path = path
57
+ i.name = name
58
+ i.full_version = match[1]
59
+ i.extension = match[4]
60
+ i.version = match[2].split('.').map(&:to_i) << match[3].to_i
27
61
  end
28
62
  end
29
63
  end
30
- to_clear.each do |tar|
31
- remove_if_present(tar)
32
- end
33
64
 
34
- to_clear = rubys
35
- tars.each do |tar|
36
- ruby = File.basename(tar, '.tar.bz2')
37
- to_clear.delete(ruby)
38
- remove_if_present(ruby) if options[:force]
39
- unless File.directory?(ruby)
40
- system('tar', '-xjf', tar)
65
+ def last_matching_ruby_archive(version, paths)
66
+ paths.map do |path|
67
+ match_ruby_archive(path)
68
+ end.compact.sort_by(&:version).reverse.find do |tar_info|
69
+ tar_info.full_version.starts_with?(version)
41
70
  end
42
71
  end
43
- to_clear.each do |ruby|
44
- remove_if_present(ruby)
72
+
73
+ def find_matching_archive(version)
74
+ paths = sources_path.parent.children.select(&:file?)
75
+ last_matching_ruby_archive(version, paths)
45
76
  end
46
- end
47
77
 
48
- def self.add_rdoc_tasks(options = {})
49
- rubys.each do |ruby|
50
- version = ruby.split('-', 2)[1]
51
- add_rdoc_task(
52
- :name_parts => [version],
53
- :src_path => ruby,
54
- :doc_path => ruby
55
- )
78
+ def download_matching_archive(version)
79
+ Net::FTP.open('ftp.ruby-lang.org') do |ftp|
80
+ remote_path = '/pub/ruby'
81
+ ftp.debug_mode = true
82
+ ftp.passive = true
83
+ ftp.login
84
+ ftp.chdir(remote_path)
85
+ paths = ftp.list('ruby-*.tar.bz2').map{ |line| "#{remote_path}/#{line.split.last}" }
86
+
87
+ if tar = last_matching_ruby_archive(version, paths)
88
+ dest = sources_path.parent + tar.name
89
+ unless File.exist?(dest) && File.size(dest) == ftp.size(tar.path)
90
+ ftp.getbinaryfile(tar.path, dest)
91
+ end
92
+ end
93
+ end
94
+ end
95
+
96
+ def find_or_download_matching_archive(version, options = {})
97
+ if options[:update] || (archive = find_matching_archive(version)).nil?
98
+ download_matching_archive(version)
99
+ if (archive = find_matching_archive(version)).nil?
100
+ raise ConfigError.new("could not find version of ruby matching #{version.inspect}")
101
+ end
102
+ end
103
+ archive
56
104
  end
57
105
  end
106
+ extend ClassMethods
58
107
  end
59
108
  end
@@ -0,0 +1,28 @@
1
+ class SdocAll
2
+ class Task
3
+ attr_reader :src_path, :doc_path, :paths, :main, :title
4
+ def initialize(options = {})
5
+ @src_path = Pathname.new(options[:src_path]).expand_path
6
+ @doc_path = options[:doc_path]
7
+ @paths = options[:paths]
8
+ @main = options[:main]
9
+ @title = options[:title]
10
+ end
11
+
12
+ def run(options = {})
13
+ cmd = %w(sdoc)
14
+ cmd << '-o' << Base.docs_path + doc_path
15
+ cmd << '-t' << title
16
+ cmd << '-T' << 'direct'
17
+
18
+ if src_path.directory?
19
+ Dir.chdir(src_path) do
20
+ cmd << '-m' << main if main
21
+ Base.system(*cmd + paths)
22
+ end
23
+ else
24
+ Base.system(*cmd + [src_path])
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/sdoc_all.rb CHANGED
@@ -11,77 +11,173 @@ require 'progress'
11
11
  __DIR__ = File.dirname(__FILE__)
12
12
  $:.unshift(__DIR__) unless $:.include?(__DIR__) || $:.include?(File.expand_path(__DIR__))
13
13
 
14
- class SdocAll
15
- def self.run(options = {})
16
- add_default_options!(options)
14
+ class Array
15
+ def sort_by!(&block)
16
+ replace(sort_by(&block))
17
+ end
18
+ end
17
19
 
18
- Base.update_all_sources(options)
20
+ class SdocAll
21
+ module ClassMethods
22
+ def update?
23
+ @update.nil? || @update
24
+ end
19
25
 
20
- tasks = Base.rdoc_tasks(options)
26
+ def last_build_sdoc_version_path
27
+ Base.base_path + 'sdoc.version'
28
+ end
21
29
 
22
- selected_tasks = []
23
- selected_tasks << tasks.find_or_last_ruby(options[:ruby])
24
- selected_tasks << tasks.find_or_last_rails(options[:rails])
25
- tasks.gems.group_by{ |task| task.name_parts[0] }.sort_by{ |name, versions| name.downcase }.each do |name, versions|
26
- selected_tasks << versions.sort_by{ |version| version.name_parts[1] }.last
30
+ def last_build_sdoc_version
31
+ last_build_sdoc_version_path.read rescue nil
27
32
  end
28
- tasks.plugins.sort_by{ |task| task.name_parts[0] }.each do |task|
29
- selected_tasks << task
33
+
34
+ def current_sdoc_version
35
+ Gem.searcher.find('sdoc').version.to_s
30
36
  end
31
37
 
32
- if options[:exclude].is_a?(Array)
33
- selected_tasks.delete_if do |task|
34
- options[:exclude].any?{ |exclude| task.doc_path[exclude] }
38
+ def store_current_sdoc_version
39
+ last_build_sdoc_version_path.open('w') do |f|
40
+ f.write(current_sdoc_version)
35
41
  end
36
42
  end
37
43
 
38
- selected_tasks.each_with_progress('Building documentation') do |task|
39
- task.run(options)
40
- end
44
+ def run(options = {})
45
+ begin
46
+ read_config
47
+ tasks = Base.tasks(:update => update? || options[:update])
48
+
49
+ if last_build_sdoc_version.nil? || last_build_sdoc_version != current_sdoc_version
50
+ Base.remove_if_present(Base.docs_path)
51
+ else
52
+ Dir.chdir(Base.docs_path) do
53
+ to_delete = Dir.glob('*')
54
+ tasks.each do |task|
55
+ to_delete.delete(task.doc_path)
56
+ end
57
+ to_delete.each do |path|
58
+ Base.remove_if_present(path)
59
+ end
60
+ end
61
+
62
+ tasks.each do |task|
63
+ doc_path = Base.docs_path + task.doc_path
64
+ src_path = task.src_path
65
+ if doc_path.exist?
66
+ latest = [src_path.mtime, src_path.ctime].max
67
+
68
+ created = Time.parse(File.read(doc_path + 'created.rid')) rescue nil
69
+ if created && latest < created
70
+ src_path.find do |path|
71
+ Find.prune if path.directory? && path.basename.to_s[0] == ?.
72
+ latest = [latest, src_path.mtime, src_path.ctime].max
73
+ break unless latest < created
74
+ end
75
+ end
76
+ if created.nil? || latest >= created
77
+ Base.remove_if_present(doc_path)
78
+ end
79
+ end
80
+ end
81
+ end
82
+
83
+ merge = false
84
+ tasks.each_with_progress('docs') do |task|
85
+ unless (Base.docs_path + task.doc_path).directory?
86
+ puts
87
+ merge = true
88
+ task.run(options)
89
+ end
90
+ end
41
91
 
42
- Dir.chdir(options[:docs_path]) do
43
- Base.remove_if_present(options[:public_path])
44
-
45
- pathes = []
46
- titles = []
47
- urls = []
48
- selected_tasks.each do |rdoc_task|
49
- doc_path = options[:docs_path] + rdoc_task.doc_path
50
- if File.file?(doc_path + 'index.html')
51
- pathes << rdoc_task.doc_path
52
- titles << rdoc_task.title
53
- urls << "/docs/#{rdoc_task.doc_path}"
92
+ if merge || !Base.public_path.exist?
93
+ Dir.chdir(Base.docs_path) do
94
+ paths = []
95
+ titles = []
96
+ urls = []
97
+ tasks.each do |task|
98
+ doc_path = Base.docs_path + task.doc_path
99
+ if File.file?(doc_path + 'index.html')
100
+ paths << task.doc_path
101
+ titles << task.title
102
+ urls << "/docs/#{task.doc_path}"
103
+ end
104
+ end
105
+
106
+ if paths.present?
107
+ Base.remove_if_present(Base.public_path)
108
+
109
+ cmd = %w(sdoc-merge)
110
+ cmd << '-o' << Base.public_path
111
+ cmd << '-t' << 'all'
112
+ cmd << '-n' << titles.join(',')
113
+ cmd << '-u' << urls.join(' ')
114
+ Base.system(*cmd + paths)
115
+
116
+ File.symlink(Base.docs_path, Base.public_path + 'docs')
117
+ end
118
+ end
54
119
  end
120
+ store_current_sdoc_version
121
+ rescue ConfigError => e
122
+ STDERR.puts e.to_s
55
123
  end
124
+ end
56
125
 
57
- cmd = %w(sdoc-merge)
58
- cmd << '-o' << options[:public_path]
59
- cmd << '-t' << 'all'
60
- cmd << '-n' << titles.join(',')
61
- cmd << '-u' << urls.join(' ')
62
- system(*cmd + pathes)
126
+ def read_config
127
+ Base.clear
128
+ config = YAML.load_file('config.yml').symbolize_keys rescue {}
129
+
130
+ min_update_interval = if config[:min_update_interval].to_s[/(\d+)\s*(.*)/]
131
+ value = $1.to_i
132
+ case $2
133
+ when /^d/
134
+ value.days
135
+ when /^h/
136
+ value.hours
137
+ when /^m/
138
+ value.minutes
139
+ else
140
+ value.seconds
141
+ end
142
+ else
143
+ 1.hour
144
+ end
63
145
 
64
- File.symlink(options[:docs_path], options[:public_path] + 'docs')
146
+ created = last_build_sdoc_version_path.mtime rescue nil
147
+ @update = created.nil? || created < min_update_interval.ago
148
+
149
+ if config[:sdoc] && config[:sdoc].is_a?(Array) && config[:sdoc].length > 0
150
+ errors = []
151
+ config[:sdoc].each do |entry|
152
+ begin
153
+ if entry.is_a?(Hash)
154
+ if entry.length == 1
155
+ Base.to_document(*entry.shift)
156
+ else
157
+ raise ConfigError.new("config entry #{entry.inspect} can not be understood - watch ident")
158
+ end
159
+ else
160
+ Base.to_document(entry, {})
161
+ end
162
+ rescue ConfigError => e
163
+ errors << e
164
+ end
165
+ end
166
+ if errors.present?
167
+ raise ConfigError.new(errors)
168
+ end
169
+ else
170
+ raise ConfigError.new("config did not specify what to document")
171
+ end
65
172
  end
66
173
  end
174
+ extend ClassMethods
175
+ end
67
176
 
68
- private
69
-
70
- def self.add_default_options!(options)
71
- options[:base_path] = Pathname.new(Dir.pwd).freeze
72
- options[:public_path] = Pathname.new(options[:base_path] + 'public').freeze
73
- options[:docs_path] = Pathname.new(options[:base_path] + 'docs').freeze
74
- options[:sources_path] = Pathname.new(options[:base_path] + 'sources').freeze
177
+ require 'sdoc_all/base.rb'
178
+ require 'sdoc_all/task.rb'
179
+ require 'sdoc_all/config_error.rb'
75
180
 
76
- options[:exclude] ||= %w(gems/actionmailer gems/actionpack gems/activerecord gems/activeresource gems/activesupport gems/rails)
77
- options[:plugins_path] = Pathname.new(options[:plugins_path] || File.expand_path('~/.plugins')).freeze
78
- end
181
+ Dir.entries("#{__DIR__}/sdoc_all").grep(/\.rb$/).each do |file|
182
+ require "sdoc_all/#{file}"
79
183
  end
80
-
81
- require 'sdoc_all/base'
82
- require 'sdoc_all/ruby'
83
- require 'sdoc_all/gems'
84
- require 'sdoc_all/rails'
85
- require 'sdoc_all/plugins'
86
- require 'sdoc_all/rdoc_task'
87
- require 'sdoc_all/rdoc_tasks'
@@ -0,0 +1,15 @@
1
+ require 'sdoc_all'
2
+
3
+ task :default => :run
4
+
5
+ desc "Build/update documentation"
6
+ task :run do
7
+ SdocAll.run
8
+ end
9
+
10
+ namespace :run do
11
+ desc "Force update sources, before building/updating"
12
+ task :force do
13
+ SdocAll.run(:update => true)
14
+ end
15
+ end
data/sdoc_all.gemspec CHANGED
@@ -2,44 +2,41 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{sdoc_all}
5
- s.version = "0.1.0"
5
+ s.version = "0.2.0.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["toy"]
9
- s.date = %q{2009-04-22}
9
+ s.date = %q{2009-04-27}
10
10
  s.default_executable = %q{sdoc-all}
11
11
  s.description = %q{Command line tool to get documentation for ruby, rails, gems and plugins in one place}
12
- s.email = %q{}
12
+ s.email = %q{ivan@workisfun.ru}
13
13
  s.executables = ["sdoc-all"]
14
- s.extra_rdoc_files = ["bin/sdoc-all", "lib/sdoc_all/base.rb", "lib/sdoc_all/gems.rb", "lib/sdoc_all/generator/sdoc_all/sdoc_all_generator.rb", "lib/sdoc_all/generator/sdoc_all/templates/Rakefile", "lib/sdoc_all/generator/sdoc_all/templates/sdoc.config.yml.erb", "lib/sdoc_all/plugins.rb", "lib/sdoc_all/rails.rb", "lib/sdoc_all/rdoc_task.rb", "lib/sdoc_all/rdoc_tasks.rb", "lib/sdoc_all/ruby.rb", "lib/sdoc_all.rb", "lib/tasks/sdoc_all.rb", "README.rdoc"]
15
- s.files = ["bin/sdoc-all", "lib/sdoc_all/base.rb", "lib/sdoc_all/gems.rb", "lib/sdoc_all/generator/sdoc_all/sdoc_all_generator.rb", "lib/sdoc_all/generator/sdoc_all/templates/Rakefile", "lib/sdoc_all/generator/sdoc_all/templates/sdoc.config.yml.erb", "lib/sdoc_all/plugins.rb", "lib/sdoc_all/rails.rb", "lib/sdoc_all/rdoc_task.rb", "lib/sdoc_all/rdoc_tasks.rb", "lib/sdoc_all/ruby.rb", "lib/sdoc_all.rb", "lib/tasks/sdoc_all.rb", "Manifest", "Rakefile", "README.rdoc", "VERSION.yml", "sdoc_all.gemspec"]
14
+ s.extra_rdoc_files = ["bin/sdoc-all", "lib/sdoc_all/base.rb", "lib/sdoc_all/config_error.rb", "lib/sdoc_all/gems.rb", "lib/sdoc_all/generator/sdoc_all/sdoc_all_generator.rb", "lib/sdoc_all/generator/sdoc_all/templates/config.yml", "lib/sdoc_all/generator/sdoc_all/templates/Rakefile", "lib/sdoc_all/paths.rb", "lib/sdoc_all/plugins.rb", "lib/sdoc_all/rails.rb", "lib/sdoc_all/ruby.rb", "lib/sdoc_all/task.rb", "lib/sdoc_all.rb", "lib/tasks/sdoc_all_rake.rb", "LICENSE", "README.rdoc"]
15
+ s.files = ["bin/sdoc-all", "lib/sdoc_all/base.rb", "lib/sdoc_all/config_error.rb", "lib/sdoc_all/gems.rb", "lib/sdoc_all/generator/sdoc_all/sdoc_all_generator.rb", "lib/sdoc_all/generator/sdoc_all/templates/config.yml", "lib/sdoc_all/generator/sdoc_all/templates/Rakefile", "lib/sdoc_all/paths.rb", "lib/sdoc_all/plugins.rb", "lib/sdoc_all/rails.rb", "lib/sdoc_all/ruby.rb", "lib/sdoc_all/task.rb", "lib/sdoc_all.rb", "lib/tasks/sdoc_all_rake.rb", "LICENSE", "Manifest", "Rakefile", "README.rdoc", "spec/sdoc_all/gems_spec.rb", "spec/sdoc_all/paths_spec.rb", "spec/sdoc_all/plugins_spec.rb", "spec/sdoc_all/rails_spec.rb", "spec/sdoc_all/ruby_spec.rb", "spec/sdoc_all_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "VERSION.yml", "sdoc_all.gemspec"]
16
16
  s.has_rdoc = true
17
17
  s.homepage = %q{http://github.com/toy/sdoc_all}
18
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Sdoc_all", "--main", "README.rdoc"]
19
19
  s.require_paths = ["lib"]
20
20
  s.rubyforge_project = %q{toytoy}
21
21
  s.rubygems_version = %q{1.3.2}
22
- s.summary = %q{Command line tool to get documentation for ruby, rails, gems and plugins in one place}
22
+ s.summary = %q{documentation for everything}
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
26
  s.specification_version = 3
27
27
 
28
28
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
- s.add_runtime_dependency(%q<sdoc>, [">= 0"])
30
29
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
31
30
  s.add_runtime_dependency(%q<rake>, [">= 0"])
32
- s.add_runtime_dependency(%q<progress>, [">= 0"])
31
+ s.add_runtime_dependency(%q<progress>, [">= 0", "= 0.0.8"])
33
32
  else
34
- s.add_dependency(%q<sdoc>, [">= 0"])
35
33
  s.add_dependency(%q<activesupport>, [">= 0"])
36
34
  s.add_dependency(%q<rake>, [">= 0"])
37
- s.add_dependency(%q<progress>, [">= 0"])
35
+ s.add_dependency(%q<progress>, [">= 0", "= 0.0.8"])
38
36
  end
39
37
  else
40
- s.add_dependency(%q<sdoc>, [">= 0"])
41
38
  s.add_dependency(%q<activesupport>, [">= 0"])
42
39
  s.add_dependency(%q<rake>, [">= 0"])
43
- s.add_dependency(%q<progress>, [">= 0"])
40
+ s.add_dependency(%q<progress>, [">= 0", "= 0.0.8"])
44
41
  end
45
42
  end