distil 0.11.8 → 0.12.0

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.8
1
+ 0.12.0
data/assets/distil.js CHANGED
@@ -246,7 +246,13 @@
246
246
  var path= module.path;
247
247
 
248
248
  for (var i=0, len=files.length; i<len; ++i)
249
- loadResource(path + files[i], null, null, null, resource);
249
+ {
250
+ // loadResource(path + files[i], null, null, null, resource);
251
+ if (distil.sync && '.js'===files[i].slice(-3).toLowerCase())
252
+ document.write('<script src="'+path+files[i]+'"></script>');
253
+ else
254
+ loadResource(path + files[i], null, null, null, resource);
255
+ }
250
256
  };
251
257
 
252
258
  distil.module= function(name, def)
data/bin/distil CHANGED
@@ -20,12 +20,11 @@ ARGV.each { |v|
20
20
  end
21
21
 
22
22
  v= v.gsub(/^-+/, '')
23
- v.gsub!("-", "_")
24
23
 
25
24
  key,value= v.split("=")
26
- if (!value)
27
- value= true
28
- end
25
+ key.gsub!("-", "_")
26
+
27
+ value=true if !value
29
28
 
30
29
  if ("f"==key || "file"==key || "buildfile"==key)
31
30
  project_file= value
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"
8
+ s.version = "0.12.0"
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-24}
12
+ s.date = %q{2010-07-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"]
@@ -27,7 +27,7 @@ class Configurable
27
27
  keys= @@options.keys
28
28
  values= @@options.map { |k,v| convert_type(v[:type], v[:value]) }
29
29
 
30
- s= Struct.new(*keys).new(*values)
30
+ s= @options ? @options : (@options=Struct.new(*keys).new(*values))
31
31
  return s if !settings
32
32
 
33
33
  setting_keys= settings.keys.map { |key| key.to_s }
@@ -61,6 +61,7 @@ class Configurable
61
61
 
62
62
  }
63
63
 
64
+ @extras.merge!(settings)
64
65
  s
65
66
  end
66
67
 
@@ -125,11 +126,11 @@ class Configurable
125
126
  end
126
127
 
127
128
  def initialize(options={}, parent=nil)
129
+ @extras= Hash.new
128
130
  if (parent.is_a?(Configurable))
129
131
  parent_options= parent.options
130
132
  end
131
- @options= get_options(options, parent_options)
132
- @extras= options
133
+ get_options(options, parent_options)
133
134
  end
134
135
 
135
136
  private
@@ -7,7 +7,7 @@ module Distil
7
7
 
8
8
  option :global_export
9
9
  option :additional_globals, [], :aliases=>['globals']
10
-
10
+
11
11
  def before_externals(f)
12
12
  f.puts("/*#nocode+*/")
13
13
  f.puts(bootstrap_source) if bootstrap
@@ -80,6 +80,7 @@ EOS
80
80
  extension "js"
81
81
 
82
82
  option :global_export
83
+ option :synchronous_load, false, :aliases=>['sync']
83
84
 
84
85
  def write_output
85
86
  return if up_to_date
@@ -114,7 +115,7 @@ EOS
114
115
  f.write("/*jsl:import #{relative_path(file)}*/\n")
115
116
  }
116
117
  f.write(<<-EOS)
117
- //distil.debug= true;
118
+ distil.sync= #{synchronous_load ? 'true' : 'false'};
118
119
 
119
120
  distil.module('#{target.name}', {
120
121
  folder: '',
@@ -2,7 +2,7 @@ module Distil
2
2
 
3
3
  class DistilProject < Project
4
4
 
5
- attr_reader :project_file
5
+ attr_reader :project_file, :targets
6
6
 
7
7
  option :ignore_warnings, false
8
8
 
@@ -11,30 +11,35 @@ module Distil
11
11
 
12
12
 
13
13
  def initialize(project_file, settings={}, parent=nil)
14
- @project_file= File.expand_path(project_file)
15
- @projects_by_name={}
16
-
17
- project_info= YAML.load_file(@project_file)
18
- project_info.merge!(settings)
19
- project_info["path"]= File.dirname(@project_file)
20
14
 
21
15
  begin
22
16
 
17
+ @project_file= File.expand_path(project_file)
18
+ @projects_by_name={}
19
+
20
+ project_info= YAML.load_file(@project_file)
21
+ project_info["path"]= File.dirname(@project_file)
22
+
23
23
  super(project_info, parent)
24
- load_external_projects
24
+ get_options(settings, parent)
25
25
 
26
+ FileUtils.mkdir_p(output_folder)
27
+
28
+ load_external_projects
29
+ find_targets
30
+ load_distileries
31
+
26
32
  rescue ValidationError => err
27
33
  puts "#{APP_NAME}: #{SourceFile.path_relative_to_folder(project_file, Dir.pwd)}: #{err.message}\n"
28
34
  exit 1
29
35
  end
36
+
30
37
  end
31
38
 
32
- def targets
33
- @targets if @targets
34
-
39
+ def find_targets
35
40
  @targets= []
36
41
  target_list= @extras['targets']
37
-
42
+
38
43
  if !target_list
39
44
  @targets << Target.new(@extras.clone, self)
40
45
  return @targets
@@ -44,7 +49,7 @@ module Distil
44
49
  Target.new(target, self)
45
50
  }
46
51
  end
47
-
52
+
48
53
  def load_external_projects
49
54
  return if !external_projects
50
55
  projects= []
@@ -82,14 +87,6 @@ module Distil
82
87
  server.start
83
88
  end
84
89
 
85
- def build
86
- FileUtils.mkdir_p(output_folder)
87
- load_distileries
88
- targets
89
- build_external_projects
90
- build_targets
91
- end
92
-
93
90
  def load_distileries
94
91
  return if distileries.nil?
95
92
 
@@ -106,17 +103,23 @@ module Distil
106
103
  require path
107
104
  }
108
105
  end
109
-
106
+
107
+ def up_to_date
108
+ return false if !external_projects.all?{ |project| project.up_to_date }
109
+ return targets.all? { |target| target.up_to_date }
110
+ end
111
+
112
+ def build
113
+ build_external_projects
114
+ build_targets
115
+ end
116
+
110
117
  def build_external_projects
111
118
  external_projects.each { |project|
112
119
  project.build
113
120
  }
114
121
  end
115
122
 
116
- def up_to_date
117
- targets.all? { |target| target.up_to_date }
118
- end
119
-
120
123
  def build_targets
121
124
  targets.each { |target|
122
125
  target.build
@@ -19,7 +19,7 @@ module Distil
19
19
  end
20
20
  super(config, parent)
21
21
 
22
- @options.output_folder= File.join(parent.output_folder, name)
22
+ self.output_folder= File.join(parent.output_folder, name)
23
23
  end
24
24
 
25
25
  def product_name(product_type, extension)
@@ -28,6 +28,11 @@ module Distil
28
28
  Interpolated.value_of(name, info)
29
29
  end
30
30
 
31
+ def up_to_date
32
+ build
33
+ true
34
+ end
35
+
31
36
  def build
32
37
  wd= Dir.getwd
33
38
  Dir.chdir(path)
@@ -11,6 +11,10 @@ module Distil
11
11
  option :mode, DEBUG_MODE, :valid_values=>[DEBUG_MODE, RELEASE_MODE]
12
12
  option :force
13
13
 
14
+ def up_to_date
15
+ true
16
+ end
17
+
14
18
  def build
15
19
  end
16
20
 
@@ -136,7 +136,6 @@ module Distil
136
136
  end
137
137
 
138
138
  def dependencies
139
- content
140
139
  @dependencies
141
140
  end
142
141
 
@@ -146,7 +145,6 @@ module Distil
146
145
  end
147
146
 
148
147
  def assets
149
- content
150
148
  @assets
151
149
  end
152
150
 
data/lib/distil/target.rb CHANGED
@@ -41,7 +41,7 @@ module Distil
41
41
  self.exclude_files= FileSet.new
42
42
  end
43
43
 
44
- @options.global_export=name if true==global_export
44
+ @options.global_export=name.as_identifier if true==global_export
45
45
 
46
46
  projects= []
47
47
  include_projects.each { |name|
@@ -165,6 +165,8 @@ module Distil
165
165
  product_folder= File.join(project.output_folder, f)
166
166
 
167
167
  next if File.exists?(product_folder)
168
+ FileUtils.rm product_folder if File.symlink?(product_folder)
169
+
168
170
  File.symlink src_folder, product_folder
169
171
  }
170
172
  end
@@ -206,9 +208,7 @@ module Distil
206
208
 
207
209
  if !up_to_date
208
210
  tasks.each { |t| t.process_files(files) }
209
-
210
211
  products.each { |p| p.write_output }
211
-
212
212
  build_assets
213
213
  end
214
214
 
@@ -216,19 +216,7 @@ module Distil
216
216
  end
217
217
 
218
218
  def find_file(file, source_file=nil)
219
- return nil if project.external_projects.nil?
220
-
221
- parts= file.split(File::SEPARATOR)
222
- project_name= parts[0]
223
-
224
- external_project= project.external_project_with_name(project_name)
225
- return nil if !external_project
226
-
227
- if 1==parts.length
228
- return SourceFile::from_path(external_project.product_name(:import, source_file.extension))
229
- else
230
- return SourceFile::from_path(File.join(external_project.source_folder, *parts[1..-1]))
231
- end
219
+ project.find_file(file, source_file)
232
220
  end
233
221
 
234
222
  def get_content_for_file(file)
data/lib/distil.rb CHANGED
@@ -34,6 +34,14 @@ def exist?(path, file)
34
34
  File.file?(File.join(path, file))
35
35
  end
36
36
 
37
+ class String
38
+ def as_identifier
39
+ word= self.to_s.gsub(/(?:^|\W)(.)/) { $1.upcase }
40
+ word[0..0].downcase + word[1..-1]
41
+ end
42
+ end
43
+
44
+
37
45
  module Distil
38
46
 
39
47
  FRAMEWORK_TYPE = "framework"
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 11
8
- - 8
9
- version: 0.11.8
7
+ - 12
8
+ - 0
9
+ version: 0.12.0
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-24 00:00:00 -07:00
17
+ date: 2010-07-08 00:00:00 -07:00
18
18
  default_executable: distil
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency