doc 0.0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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