doc 0.0.0.0 → 0.0.1

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/lib/doc/merger.rb ADDED
@@ -0,0 +1,40 @@
1
+ module Doc
2
+ class Merger < BaseTask
3
+ attr_reader :tasks
4
+ def initialize(documentor, options)
5
+ super
6
+ @tasks = options[:tasks].uniq
7
+
8
+ @config = {
9
+ :title => title,
10
+ :dir_name => dir_name,
11
+ :tasks => tasks.map(&:config),
12
+ }
13
+ end
14
+
15
+ state_methods :failed, <<-RUBY
16
+ tasks.map(&:failed?)
17
+ RUBY
18
+
19
+ def run
20
+ tasks.with_progress('build').each(&:run)
21
+ super(failed_state_changed?)
22
+ write_failed_state if succeeded?
23
+ end
24
+
25
+ def build
26
+ succeded_tasks = tasks.reject(&:failed?)
27
+ task_titles = succeded_tasks.map{ |task| task.title.gsub(',', '_') }.join(',')
28
+ task_urls = succeded_tasks.map{ |task| task.doc_dir.relative_path_from(doc_dir).to_s.strip }.join(' ')
29
+
30
+ cmd = Command.new('sdoc-merge')
31
+ cmd.add "--op=#{doc_dir}"
32
+ cmd.add "--title=#{title}"
33
+ cmd.add "--names=#{task_titles}"
34
+ cmd.add "--urls=#{task_urls}"
35
+ cmd.add *succeded_tasks.map(&:doc_dir)
36
+
37
+ cmd.run
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,29 @@
1
+ module Doc
2
+ class RootConfig < ConfigObject
3
+ attr_reader :documentor
4
+ def initialize(documentor, *arguments, &block)
5
+ @documentor = documentor
6
+ super :title, *arguments, &block
7
+
8
+ if clean_after
9
+ if !clean_after.is_a?(Numeric)
10
+ raise "clean_after must be a number, got #{clean_after.inspect}"
11
+ elsif clean_after < 0
12
+ raise "clean_after must zero or greater, got #{clean_after.inspect}"
13
+ end
14
+ end
15
+ end
16
+
17
+ def configurators
18
+ @configurators ||= []
19
+ end
20
+
21
+ def self.configurator(name, klass)
22
+ class_eval <<-RUBY, __FILE__, __LINE__
23
+ def #{name}(*arguments, &block)
24
+ configurators << #{klass}.new(documentor, *arguments, &block)
25
+ end
26
+ RUBY
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ module Doc
2
+ class RootMerger < Merger
3
+ def doc_dir
4
+ documentor.public_dir
5
+ end
6
+
7
+ def run
8
+ super
9
+ if succeeded?
10
+ (doc_dir / documentor.docs_dir.basename).make_symlink(documentor.docs_dir.relative_path_from(doc_dir))
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/doc/tasks.rb ADDED
@@ -0,0 +1,52 @@
1
+ require 'doc'
2
+
3
+ module Doc
4
+ class Tasks
5
+ include Rake::DSL
6
+
7
+ attr_reader :documentor
8
+ def initialize(*arguments, &block)
9
+ @documentor = Documentor.new(*arguments, &block)
10
+ define
11
+ end
12
+
13
+ def humanize_time(seconds)
14
+ case seconds
15
+ when 0...60
16
+ '%.1fs' % seconds
17
+ when 60...3600
18
+ '%.1fm' % (seconds / 60)
19
+ else
20
+ '%.1fh' % (seconds / 3600)
21
+ end
22
+ end
23
+
24
+ def count_time
25
+ start = Time.now
26
+ yield
27
+ puts "It took #{humanize_time(Time.now - start)}"
28
+ end
29
+
30
+ private
31
+
32
+ def define
33
+ task :default => :build
34
+
35
+ task :config do
36
+ count_time{ documentor.config }
37
+ end
38
+
39
+ desc 'build documentation'
40
+ task :build do
41
+ count_time{ documentor.build }
42
+ end
43
+
44
+ namespace :build do
45
+ desc 'force update and build documentation'
46
+ task :update do
47
+ count_time{ documentor.build(true) }
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 79
5
- prerelease: false
4
+ hash: 29
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 0
10
- - 0
11
- version: 0.0.0.0
9
+ - 1
10
+ version: 0.0.1
12
11
  platform: ruby
13
12
  authors:
14
13
  - Ivan Kuchin
@@ -16,13 +15,70 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-12-16 00:00:00 +03:00
20
- default_executable:
18
+ date: 2011-10-04 00:00:00 Z
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
23
- name: jeweler
21
+ name: sdoc
24
22
  prerelease: false
25
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ hash: 63
29
+ segments:
30
+ - 0
31
+ - 2
32
+ - 20
33
+ version: 0.2.20
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: fspath
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: progress
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: net-ftp-list
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ type: :runtime
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: jeweler
80
+ prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
26
82
  none: false
27
83
  requirements:
28
84
  - - ~>
@@ -34,11 +90,11 @@ dependencies:
34
90
  - 1
35
91
  version: 1.5.1
36
92
  type: :development
37
- version_requirements: *id001
93
+ version_requirements: *id005
38
94
  - !ruby/object:Gem::Dependency
39
95
  name: rake-gem-ghost
40
96
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
97
+ requirement: &id006 !ruby/object:Gem::Requirement
42
98
  none: false
43
99
  requirements:
44
100
  - - ">="
@@ -48,11 +104,11 @@ dependencies:
48
104
  - 0
49
105
  version: "0"
50
106
  type: :development
51
- version_requirements: *id002
52
- description: Command line tool to get searchable documentation for ruby, rails, gems, plugins and other ruby related code in one place
107
+ version_requirements: *id006
108
+ description: Generate `Rakefile` with `docr` and get searchable documentation for ruby, rails, gems, plugins and all other ruby code in one place
53
109
  email:
54
- executables: []
55
-
110
+ executables:
111
+ - docr
56
112
  extensions: []
57
113
 
58
114
  extra_rdoc_files:
@@ -64,9 +120,29 @@ files:
64
120
  - README.markdown
65
121
  - Rakefile
66
122
  - VERSION
123
+ - bin/docr
67
124
  - doc.gemspec
68
125
  - lib/doc.rb
69
- has_rdoc: true
126
+ - lib/doc/base_task.rb
127
+ - lib/doc/builder.rb
128
+ - lib/doc/command.rb
129
+ - lib/doc/config_error.rb
130
+ - lib/doc/config_object.rb
131
+ - lib/doc/configurator.rb
132
+ - lib/doc/configurator/gems.rb
133
+ - lib/doc/configurator/paths.rb
134
+ - lib/doc/configurator/rails.rb
135
+ - lib/doc/configurator/ruby.rb
136
+ - lib/doc/configurator/ruby/path_info.rb
137
+ - lib/doc/configurator/ruby/source.rb
138
+ - lib/doc/configurator/ruby/stdlib.rb
139
+ - lib/doc/configurator/ruby/version_specifier.rb
140
+ - lib/doc/core_ext.rb
141
+ - lib/doc/documentor.rb
142
+ - lib/doc/merger.rb
143
+ - lib/doc/root_config.rb
144
+ - lib/doc/root_merger.rb
145
+ - lib/doc/tasks.rb
70
146
  homepage: http://github.com/toy/doc
71
147
  licenses:
72
148
  - MIT
@@ -96,9 +172,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
172
  requirements: []
97
173
 
98
174
  rubyforge_project:
99
- rubygems_version: 1.3.7
175
+ rubygems_version: 1.8.10
100
176
  signing_key:
101
177
  specification_version: 3
102
- summary: Documentation for everything
178
+ summary: Get all ruby documentation in one place
103
179
  test_files: []
104
180