distil 0.11.0 → 0.11.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/distil.gemspec +3 -2
- data/lib/distil/product.rb +1 -0
- data/lib/distil/product/page-product.rb +27 -0
- data/lib/distil/project.rb +52 -1
- data/lib/distil/project/distil-project.rb +6 -2
- data/lib/distil/target.rb +6 -0
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.11.
|
1
|
+
0.11.1
|
data/distil.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{distil}
|
8
|
-
s.version = "0.11.
|
8
|
+
s.version = "0.11.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jeff Watkins"]
|
12
|
-
s.date = %q{2010-06-
|
12
|
+
s.date = %q{2010-06-08}
|
13
13
|
s.default_executable = %q{distil}
|
14
14
|
s.description = %q{A build tool for Javascript and CSS that takes advantage of best-of-breed helper applications Javascript Lint and JSDoc Toolkit}
|
15
15
|
s.executables = ["distil"]
|
@@ -35,6 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
"lib/distil/product/javascript-doc-product.rb",
|
36
36
|
"lib/distil/product/javascript-product.rb",
|
37
37
|
"lib/distil/product/minified.rb",
|
38
|
+
"lib/distil/product/page-product.rb",
|
38
39
|
"lib/distil/project.rb",
|
39
40
|
"lib/distil/project/distil-project.rb",
|
40
41
|
"lib/distil/project/external-project.rb",
|
data/lib/distil/product.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Distil
|
2
|
+
|
3
|
+
class PageProduct < Product
|
4
|
+
extension "html"
|
5
|
+
|
6
|
+
def filename
|
7
|
+
File.join(target.project.output_folder, "index.html")
|
8
|
+
end
|
9
|
+
|
10
|
+
def write_output
|
11
|
+
output_folder= target.project.output_folder
|
12
|
+
mode= target.project.mode
|
13
|
+
|
14
|
+
files.each { |f|
|
15
|
+
if (RELEASE_MODE==mode)
|
16
|
+
FileUtils.cp f, output_folder
|
17
|
+
else
|
18
|
+
product_path= File.join(output_folder, File.basename(f))
|
19
|
+
FileUtils.rm product_path if File.exists? product_path
|
20
|
+
File.symlink f.relative_to_folder(output_folder), product_path
|
21
|
+
end
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/distil/project.rb
CHANGED
@@ -13,19 +13,70 @@ module Distil
|
|
13
13
|
|
14
14
|
def build
|
15
15
|
end
|
16
|
+
|
17
|
+
def self.fetch_project_using_git(options = {})
|
18
|
+
uri= options["repository"]
|
19
|
+
path= options["path"]
|
20
|
+
|
21
|
+
FileUtils.mkdir_p(path)
|
22
|
+
Dir.chdir path do
|
23
|
+
init_cmd = "git init"
|
24
|
+
init_cmd+= " -q"
|
25
|
+
# init_cmd += " -q" if options[:quiet] and not $verbose
|
26
|
+
# puts init_cmd if $verbose
|
27
|
+
system(init_cmd)
|
28
|
+
base_cmd = "git pull --depth 1 #{uri}"
|
29
|
+
base_cmd+= " -q"
|
30
|
+
# base_cmd += " -q" if options[:quiet] and not $verbose
|
31
|
+
base_cmd += " #{options[:version]}" if options[:version]
|
32
|
+
# puts base_cmd if $verbose
|
33
|
+
if system(base_cmd)
|
34
|
+
# puts "removing: .git .gitignore" if $verbose
|
35
|
+
# FileUtils.rm_rf %w(.git .gitignore)
|
36
|
+
else
|
37
|
+
rm_rf path
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
16
41
|
|
17
42
|
def self.from_config(config, parent=nil)
|
18
43
|
|
19
44
|
if config.is_a?(String)
|
20
45
|
string= config
|
46
|
+
uri= URI.parse(string)
|
47
|
+
|
21
48
|
config= { "name" => File.basename(config, ".*") }
|
22
|
-
|
49
|
+
if uri.scheme
|
50
|
+
config["repository"]= uri.to_s
|
51
|
+
else
|
52
|
+
config["path"]= uri.to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
full_path= File.expand_path(config["path"])
|
56
|
+
|
23
57
|
if File.exist?(full_path) && File.file?(full_path)
|
24
58
|
config["path"]= File.dirname(full_path)
|
25
59
|
else
|
26
60
|
config["path"]= full_path
|
27
61
|
end
|
28
62
|
end
|
63
|
+
|
64
|
+
if !config["name"]
|
65
|
+
case when config["repository"]
|
66
|
+
uri= URI.parse(config["repository"])
|
67
|
+
config["name"]= File.basename(uri.path, ".*")
|
68
|
+
when config["path"]
|
69
|
+
config["name"]= File.basename(config["path"], ".*")
|
70
|
+
else
|
71
|
+
raise ValidationError.new("External project has neither name, path nor repository")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
config["path"]||= "ext/#{config["name"]}"
|
76
|
+
|
77
|
+
if config["repository"] && !File.directory?(config["path"])
|
78
|
+
fetch_project_using_git(config)
|
79
|
+
end
|
29
80
|
|
30
81
|
config["mode"]||= parent.mode if parent
|
31
82
|
|
@@ -46,12 +46,16 @@ module Distil
|
|
46
46
|
|
47
47
|
def load_external_projects
|
48
48
|
return if !external_projects
|
49
|
-
|
50
|
-
|
49
|
+
projects= []
|
50
|
+
|
51
|
+
external_projects.each { |config|
|
51
52
|
project= Project.from_config(config, self)
|
52
53
|
next if !project
|
54
|
+
projects << project
|
53
55
|
@projects_by_name[project.name]= project
|
54
56
|
}
|
57
|
+
|
58
|
+
self.external_projects= projects
|
55
59
|
end
|
56
60
|
|
57
61
|
def external_project_with_name(name)
|
data/lib/distil/target.rb
CHANGED
@@ -79,6 +79,12 @@ module Distil
|
|
79
79
|
@products << product if !product.files.empty?
|
80
80
|
}
|
81
81
|
|
82
|
+
if APP_TYPE==target_type
|
83
|
+
product= PageProduct.new(@extras.clone, self)
|
84
|
+
product.files= files
|
85
|
+
@products << product if !product.files.empty?
|
86
|
+
end
|
87
|
+
|
82
88
|
@products
|
83
89
|
end
|
84
90
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 11
|
8
|
-
-
|
9
|
-
version: 0.11.
|
8
|
+
- 1
|
9
|
+
version: 0.11.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jeff Watkins
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-08 00:00:00 -07:00
|
18
18
|
default_executable: distil
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/distil/product/javascript-doc-product.rb
|
61
61
|
- lib/distil/product/javascript-product.rb
|
62
62
|
- lib/distil/product/minified.rb
|
63
|
+
- lib/distil/product/page-product.rb
|
63
64
|
- lib/distil/project.rb
|
64
65
|
- lib/distil/project/distil-project.rb
|
65
66
|
- lib/distil/project/external-project.rb
|