jekylltask 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/jekylltask.gemspec +7 -2
- data/lib/jekylltask.rb +62 -39
- metadata +4 -27
data/jekylltask.gemspec
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
Gem::Specification.new do |spec|
|
17
17
|
spec.name = 'jekylltask'
|
18
|
-
spec.version = '1.0
|
18
|
+
spec.version = '1.1.0'
|
19
19
|
spec.author = 'Jekyll Rake Task'
|
20
20
|
spec.email = "antoine@lunar-ocean.com"
|
21
21
|
spec.homepage = "http://www.github.com/atoulme/jekylltask"
|
@@ -25,8 +25,13 @@ A Rake task to run jekyll over your textile files.
|
|
25
25
|
TEXT
|
26
26
|
|
27
27
|
spec.files = Dir['lib/**/*', '*.{gemspec}', 'LICENSE', 'README.rdoc']
|
28
|
+
|
29
|
+
# Rakefile needs to create spec for both platforms (ruby and java), using the
|
30
|
+
# $platform global variable. In all other cases, we figure it out from RUBY_PLATFORM.
|
31
|
+
spec.platform = $platform || RUBY_PLATFORM[/java/] || 'ruby'
|
28
32
|
|
29
33
|
# Tested against these dependencies.
|
30
34
|
spec.add_dependency 'rake', '>= 0.8.7'
|
31
|
-
spec.add_dependency 'jekyll', '>= 0.6.2'
|
35
|
+
spec.add_dependency 'jekyll', '>= 0.6.2' unless spec.platform.to_s == 'java'
|
36
|
+
spec.add_dependency 'realityforge-jekyll', '>= 0.7.1' if spec.platform.to_s == 'java'
|
32
37
|
end
|
data/lib/jekylltask.rb
CHANGED
@@ -14,60 +14,83 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
require 'rake/tasklib'
|
17
|
-
require 'jekyll'
|
18
17
|
|
18
|
+
module Kernel
|
19
|
+
def suppress_warnings
|
20
|
+
original_verbosity = $VERBOSE
|
21
|
+
$VERBOSE = nil
|
22
|
+
result = yield
|
23
|
+
$VERBOSE = original_verbosity
|
24
|
+
return result
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
suppress_warnings { require 'liquid' }
|
29
|
+
require 'jekyll'
|
19
30
|
|
20
31
|
class JekyllTask < Rake::TaskLib
|
21
|
-
def initialize(name
|
32
|
+
def initialize(name) # :yield: self
|
22
33
|
@name = name
|
23
|
-
@source =
|
24
|
-
@target =
|
34
|
+
@source = nil
|
35
|
+
@target = nil
|
36
|
+
@auto = false
|
37
|
+
@description = nil
|
25
38
|
yield self if block_given?
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
if @source != @target
|
30
|
-
file @target=>FileList["#{@source}/**/*"] do
|
31
|
-
generate
|
32
|
-
end
|
33
|
-
task 'clobber' do
|
34
|
-
rm_rf @target
|
35
|
-
end
|
36
|
-
end
|
39
|
+
raise "User must specify source directory" unless self.source
|
40
|
+
raise "User must specify target directory" unless self.target
|
41
|
+
generate
|
37
42
|
end
|
38
43
|
|
44
|
+
attr_reader :name
|
39
45
|
attr_accessor :source
|
40
46
|
attr_accessor :target
|
47
|
+
attr_accessor :auto
|
48
|
+
attr_accessor :description
|
41
49
|
|
42
|
-
|
43
|
-
options = { 'source'=>source, 'destination'=>target }
|
44
|
-
options = Jekyll.configuration(options)
|
45
|
-
site = Jekyll::Site.new(options)
|
50
|
+
private
|
46
51
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
def generate
|
53
|
+
desc self.description if self.description
|
54
|
+
if self.auto
|
55
|
+
task self.name do
|
56
|
+
require 'directory_watcher'
|
57
|
+
puts "Auto generating: just edit a page and save, watch the console to see when we're done regenerating pages"
|
58
|
+
dw = DirectoryWatcher.new(source)
|
59
|
+
dw.interval = 1
|
60
|
+
dw.glob = Dir.chdir(source) do
|
61
|
+
dirs = Dir['*'].select { |x| File.directory?(x) }
|
62
|
+
dirs -= [target]
|
63
|
+
dirs = dirs.map { |x| "#{x}/**/*" }
|
64
|
+
dirs += ['*']
|
65
|
+
end
|
66
|
+
dw.start
|
67
|
+
site = init_jekyll
|
68
|
+
dw.add_observer do |*args|
|
69
|
+
t = Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
70
|
+
puts "[#{t}] regeneration: #{args.size} files changed"
|
71
|
+
site.process
|
72
|
+
puts "Done"
|
73
|
+
end
|
74
|
+
loop { sleep 1 }
|
57
75
|
end
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
puts "
|
76
|
+
else
|
77
|
+
task self.name => self.target
|
78
|
+
file self.target => FileList["#{self.source}/**/*"] do
|
79
|
+
puts "Generating documentation in #{target}"
|
80
|
+
site = init_jekyll
|
62
81
|
site.process
|
63
|
-
|
82
|
+
touch target
|
64
83
|
end
|
65
|
-
loop { sleep 1 }
|
66
|
-
else
|
67
|
-
puts "Generating documentation in #{target}"
|
68
|
-
site.process
|
69
|
-
touch target
|
70
84
|
end
|
85
|
+
task 'clobber' do
|
86
|
+
rm_rf self.target
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def init_jekyll
|
91
|
+
options = {'source' => self.source, 'destination' => self.target}
|
92
|
+
options = Jekyll.configuration(options)
|
93
|
+
Jekyll::Site.new(options)
|
71
94
|
end
|
72
95
|
end
|
73
96
|
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekylltask
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 1.0.2
|
4
|
+
prerelease:
|
5
|
+
version: 1.1.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Jekyll Rake Task
|
@@ -15,8 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
19
|
-
default_executable:
|
13
|
+
date: 2011-07-22 00:00:00 Z
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
22
16
|
name: rake
|
@@ -26,11 +20,6 @@ dependencies:
|
|
26
20
|
requirements:
|
27
21
|
- - ">="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 49
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 8
|
33
|
-
- 7
|
34
23
|
version: 0.8.7
|
35
24
|
type: :runtime
|
36
25
|
version_requirements: *id001
|
@@ -42,11 +31,6 @@ dependencies:
|
|
42
31
|
requirements:
|
43
32
|
- - ">="
|
44
33
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 3
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 6
|
49
|
-
- 2
|
50
34
|
version: 0.6.2
|
51
35
|
type: :runtime
|
52
36
|
version_requirements: *id002
|
@@ -65,7 +49,6 @@ files:
|
|
65
49
|
- jekylltask.gemspec
|
66
50
|
- LICENSE
|
67
51
|
- README.rdoc
|
68
|
-
has_rdoc: true
|
69
52
|
homepage: http://www.github.com/atoulme/jekylltask
|
70
53
|
licenses: []
|
71
54
|
|
@@ -79,23 +62,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
62
|
requirements:
|
80
63
|
- - ">="
|
81
64
|
- !ruby/object:Gem::Version
|
82
|
-
hash: 3
|
83
|
-
segments:
|
84
|
-
- 0
|
85
65
|
version: "0"
|
86
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
67
|
none: false
|
88
68
|
requirements:
|
89
69
|
- - ">="
|
90
70
|
- !ruby/object:Gem::Version
|
91
|
-
hash: 3
|
92
|
-
segments:
|
93
|
-
- 0
|
94
71
|
version: "0"
|
95
72
|
requirements: []
|
96
73
|
|
97
74
|
rubyforge_project:
|
98
|
-
rubygems_version: 1.
|
75
|
+
rubygems_version: 1.8.5
|
99
76
|
signing_key:
|
100
77
|
specification_version: 3
|
101
78
|
summary: A Rake task to run jekyll
|