distil 0.12.6 → 0.13.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.
Files changed (39) hide show
  1. data/Rakefile +13 -1
  2. data/VERSION +1 -1
  3. data/bin/distil +21 -13
  4. data/distil.gemspec +27 -4
  5. data/distil.tmproj +4 -125
  6. data/lib/distil/configurable.rb +1 -0
  7. data/lib/distil/product/javascript-product.rb +2 -1
  8. data/lib/distil/product/pdoc-product.rb +42 -0
  9. data/lib/distil/product.rb +1 -0
  10. data/lib/distil/source-file.rb +3 -5
  11. data/lib/distil/target.rb +6 -3
  12. data/lib/distil/task.rb +1 -1
  13. data/lib/distil.rb +14 -14
  14. data/vendor/pdoc/Rakefile +3 -3
  15. data/vendor/pdoc-template/assets/stylesheets/api.css +693 -0
  16. data/vendor/pdoc-template/assets/stylesheets/core.css +84 -0
  17. data/vendor/pdoc-template/assets/stylesheets/pygments.css +62 -0
  18. data/vendor/pdoc-template/assets/stylesheets/reset.css +70 -0
  19. data/vendor/pdoc-template/assets/stylesheets/syntax.css +60 -0
  20. data/vendor/pdoc-template/helpers.rb +35 -0
  21. data/vendor/pdoc-template/index.erb +24 -0
  22. data/vendor/pdoc-template/item_index.js.erb +6 -0
  23. data/vendor/pdoc-template/layout.erb +28 -0
  24. data/vendor/pdoc-template/leaf.erb +22 -0
  25. data/vendor/pdoc-template/node.erb +64 -0
  26. data/vendor/pdoc-template/partials/class_relationships.erb +19 -0
  27. data/vendor/pdoc-template/partials/classes.erb +7 -0
  28. data/vendor/pdoc-template/partials/constructor.erb +5 -0
  29. data/vendor/pdoc-template/partials/link_list.erb +1 -0
  30. data/vendor/pdoc-template/partials/method_signatures.erb +14 -0
  31. data/vendor/pdoc-template/partials/methodized_note.erb +9 -0
  32. data/vendor/pdoc-template/partials/namespaces.erb +7 -0
  33. data/vendor/pdoc-template/partials/related_utilities.erb +5 -0
  34. data/vendor/pdoc-template/partials/relationships.erb +11 -0
  35. data/vendor/pdoc-template/partials/short_description_list.erb +7 -0
  36. data/vendor/pdoc-template/partials/title.erb +22 -0
  37. data/vendor/pdoc-template/section.erb +22 -0
  38. metadata +30 -7
  39. data/vendor/pdoc/pdoc-0.2.0.gem +0 -0
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ begin
7
7
  gemspec.name = 'distil'
8
8
  gemspec.authors= ["Jeff Watkins"]
9
9
  gemspec.summary= "A build tool for Javascript and CSS that takes advantage of best-of-breed helper applications Javascript Lint and JSDoc Toolkit"
10
- gemspec.homepage= "http://code.google.com/p/distil-js/"
10
+ gemspec.homepage= "http://github.com/jeffwatkins/distil"
11
11
  gemspec.description= gemspec.summary
12
12
  gemspec.files= Dir['assets/*', 'lib/**/*', 'bin/*', '[A-Za-z]*', 'vendor/**/*']
13
13
  gemspec.files.reject! { |f| File.directory?(f) }
@@ -25,6 +25,18 @@ rescue LoadError
25
25
  puts "Jeweler not available. Install it with: sudo gem install jeweler"
26
26
  end
27
27
 
28
+ namespace :git do
29
+ namespace :submodules do
30
+ desc "Initialize git submodules"
31
+ task :init do
32
+ system "git submodule init"
33
+ system "git submodule update"
34
+ end
35
+ end
36
+ end
37
+
38
+ task :"gemspec:generate" => :"git:submodules:init"
39
+
28
40
  task :default => [ :build ] do
29
41
  puts "generated latest version"
30
42
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.12.6
1
+ 0.13.0
data/bin/distil CHANGED
@@ -1,11 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
+ module Distil
3
+
4
+ LIB_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
5
+ VENDOR_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "vendor"))
6
+ ASSETS_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "assets"))
7
+ APP_NAME= File.basename($0)
2
8
 
3
- LIB_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
4
- VENDOR_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "vendor"))
5
- ASSETS_DIR= File.expand_path(File.join(File.dirname(__FILE__), "..", "assets"))
6
- APP_NAME= File.basename($0)
9
+ $:.unshift(LIB_DIR)
7
10
 
8
- $:.unshift(LIB_DIR)
11
+ end
9
12
 
10
13
  require "distil"
11
14
 
@@ -18,24 +21,29 @@ ARGV.each { |v|
18
21
  args << v
19
22
  next
20
23
  end
21
-
24
+
22
25
  v= v.gsub(/^-+/, '')
23
-
26
+
24
27
  key,value= v.split("=")
25
28
  key.gsub!("-", "_")
26
-
29
+
27
30
  value=true if !value
28
-
31
+
29
32
  if ("f"==key || "file"==key || "buildfile"==key)
30
33
  project_file= value
31
34
  next
32
35
  end
33
-
36
+
34
37
  arg_settings[key]= value
35
38
  }
36
39
 
37
40
  def find_project_file(dir=nil)
38
41
  dir ||= Dir.pwd
42
+
43
+ immediate_projects= Dir.glob(File.join(dir, "*.jsproj"))
44
+ if (!immediate_projects.empty? && 1==immediate_projects.length)
45
+ return immediate_projects[0]
46
+ end
39
47
 
40
48
  while dir.length > 1
41
49
  Dir.glob(File.join(dir, '*.jsproj')) { |file|
@@ -43,15 +51,15 @@ def find_project_file(dir=nil)
43
51
  }
44
52
  dir = File.dirname(dir)
45
53
  end
46
-
54
+
47
55
  end
48
56
 
49
-
57
+
50
58
  # Change working directory to the folder containing the build YML file.
51
59
  project_file||= find_project_file
52
60
 
53
61
  if !project_file
54
- puts "#{APP_NAME}: can't find project file"
62
+ puts "#{Distil::APP_NAME}: can't find project file"
55
63
  exit
56
64
  end
57
65
 
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.12.6"
8
+ s.version = "0.13.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-08-14}
12
+ s.date = %q{2010-08-30}
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"]
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
38
38
  "lib/distil/product/javascript-product.rb",
39
39
  "lib/distil/product/minified.rb",
40
40
  "lib/distil/product/page-product.rb",
41
+ "lib/distil/product/pdoc-product.rb",
41
42
  "lib/distil/project.rb",
42
43
  "lib/distil/project/distil-project.rb",
43
44
  "lib/distil/project/external-project.rb",
@@ -587,6 +588,29 @@ Gem::Specification.new do |s|
587
588
  "vendor/jsl-0.3.0/tests/warnings/useless_void.js",
588
589
  "vendor/jsl-0.3.0/tests/warnings/var_hides_arg.js",
589
590
  "vendor/jsl-0.3.0/tests/warnings/with_statement.js",
591
+ "vendor/pdoc-template/assets/stylesheets/api.css",
592
+ "vendor/pdoc-template/assets/stylesheets/core.css",
593
+ "vendor/pdoc-template/assets/stylesheets/pygments.css",
594
+ "vendor/pdoc-template/assets/stylesheets/reset.css",
595
+ "vendor/pdoc-template/assets/stylesheets/syntax.css",
596
+ "vendor/pdoc-template/helpers.rb",
597
+ "vendor/pdoc-template/index.erb",
598
+ "vendor/pdoc-template/item_index.js.erb",
599
+ "vendor/pdoc-template/layout.erb",
600
+ "vendor/pdoc-template/leaf.erb",
601
+ "vendor/pdoc-template/node.erb",
602
+ "vendor/pdoc-template/partials/class_relationships.erb",
603
+ "vendor/pdoc-template/partials/classes.erb",
604
+ "vendor/pdoc-template/partials/constructor.erb",
605
+ "vendor/pdoc-template/partials/link_list.erb",
606
+ "vendor/pdoc-template/partials/method_signatures.erb",
607
+ "vendor/pdoc-template/partials/methodized_note.erb",
608
+ "vendor/pdoc-template/partials/namespaces.erb",
609
+ "vendor/pdoc-template/partials/related_utilities.erb",
610
+ "vendor/pdoc-template/partials/relationships.erb",
611
+ "vendor/pdoc-template/partials/short_description_list.erb",
612
+ "vendor/pdoc-template/partials/title.erb",
613
+ "vendor/pdoc-template/section.erb",
590
614
  "vendor/pdoc/LICENSE",
591
615
  "vendor/pdoc/PDoc.tmbundle/Commands/Continue PDoc Comment.tmCommand",
592
616
  "vendor/pdoc/PDoc.tmbundle/Macros/Collapse PDoc Blocks.tmMacro",
@@ -659,7 +683,6 @@ Gem::Specification.new do |s|
659
683
  "vendor/pdoc/lib/pdoc/parser/treetop_files/tags.treetop",
660
684
  "vendor/pdoc/lib/pdoc/runner.rb",
661
685
  "vendor/pdoc/lib/pdoc/treemaker.rb",
662
- "vendor/pdoc/pdoc-0.2.0.gem",
663
686
  "vendor/pdoc/pdoc.gemspec",
664
687
  "vendor/pdoc/templates/html/assets/images/pdoc/alias.png",
665
688
  "vendor/pdoc/templates/html/assets/images/pdoc/class.png",
@@ -738,7 +761,7 @@ Gem::Specification.new do |s|
738
761
  "vendor/pdoc/website/markdown/syntax.markdown",
739
762
  "vendor/yuicompressor-2.4.2.jar"
740
763
  ]
741
- s.homepage = %q{http://code.google.com/p/distil-js/}
764
+ s.homepage = %q{http://github.com/jeffwatkins/distil}
742
765
  s.rdoc_options = ["--charset=UTF-8"]
743
766
  s.require_paths = ["lib"]
744
767
  s.rubygems_version = %q{1.3.7}
data/distil.tmproj CHANGED
@@ -3,7 +3,7 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>currentDocument</key>
6
- <string>assets/distil.js</string>
6
+ <string>lib/distil/target.rb</string>
7
7
  <key>documents</key>
8
8
  <array>
9
9
  <dict>
@@ -21,65 +21,7 @@
21
21
  <integer>270</integer>
22
22
  <key>metaData</key>
23
23
  <dict>
24
- <key>Rakefile</key>
25
- <dict>
26
- <key>caret</key>
27
- <dict>
28
- <key>column</key>
29
- <integer>35</integer>
30
- <key>line</key>
31
- <integer>13</integer>
32
- </dict>
33
- <key>columnSelection</key>
34
- <false/>
35
- <key>firstVisibleColumn</key>
36
- <integer>0</integer>
37
- <key>firstVisibleLine</key>
38
- <integer>0</integer>
39
- <key>selectFrom</key>
40
- <dict>
41
- <key>column</key>
42
- <integer>4</integer>
43
- <key>line</key>
44
- <integer>13</integer>
45
- </dict>
46
- <key>selectTo</key>
47
- <dict>
48
- <key>column</key>
49
- <integer>35</integer>
50
- <key>line</key>
51
- <integer>13</integer>
52
- </dict>
53
- </dict>
54
- <key>assets/distil.js</key>
55
- <dict>
56
- <key>caret</key>
57
- <dict>
58
- <key>column</key>
59
- <integer>4</integer>
60
- <key>line</key>
61
- <integer>306</integer>
62
- </dict>
63
- <key>firstVisibleColumn</key>
64
- <integer>0</integer>
65
- <key>firstVisibleLine</key>
66
- <integer>270</integer>
67
- </dict>
68
- <key>bin/distil</key>
69
- <dict>
70
- <key>caret</key>
71
- <dict>
72
- <key>column</key>
73
- <integer>0</integer>
74
- <key>line</key>
75
- <integer>70</integer>
76
- </dict>
77
- <key>firstVisibleColumn</key>
78
- <integer>0</integer>
79
- <key>firstVisibleLine</key>
80
- <integer>0</integer>
81
- </dict>
82
- <key>distil.gemspec</key>
24
+ <key>lib/distil/target.rb</key>
83
25
  <dict>
84
26
  <key>caret</key>
85
27
  <dict>
@@ -93,77 +35,14 @@
93
35
  <key>firstVisibleLine</key>
94
36
  <integer>0</integer>
95
37
  </dict>
96
- <key>lib/distil.rb</key>
97
- <dict>
98
- <key>caret</key>
99
- <dict>
100
- <key>column</key>
101
- <integer>0</integer>
102
- <key>line</key>
103
- <integer>0</integer>
104
- </dict>
105
- <key>firstVisibleColumn</key>
106
- <integer>0</integer>
107
- <key>firstVisibleLine</key>
108
- <integer>0</integer>
109
- </dict>
110
- <key>lib/distil/project.rb</key>
111
- <dict>
112
- <key>caret</key>
113
- <dict>
114
- <key>column</key>
115
- <integer>0</integer>
116
- <key>line</key>
117
- <integer>44</integer>
118
- </dict>
119
- <key>firstVisibleColumn</key>
120
- <integer>0</integer>
121
- <key>firstVisibleLine</key>
122
- <integer>1</integer>
123
- </dict>
124
- <key>lib/distil/project/distil-project.rb</key>
125
- <dict>
126
- <key>caret</key>
127
- <dict>
128
- <key>column</key>
129
- <integer>0</integer>
130
- <key>line</key>
131
- <integer>145</integer>
132
- </dict>
133
- <key>firstVisibleColumn</key>
134
- <integer>0</integer>
135
- <key>firstVisibleLine</key>
136
- <integer>0</integer>
137
- </dict>
138
- <key>lib/distil/project/external-project.rb</key>
139
- <dict>
140
- <key>caret</key>
141
- <dict>
142
- <key>column</key>
143
- <integer>0</integer>
144
- <key>line</key>
145
- <integer>35</integer>
146
- </dict>
147
- <key>firstVisibleColumn</key>
148
- <integer>0</integer>
149
- <key>firstVisibleLine</key>
150
- <integer>0</integer>
151
- </dict>
152
38
  </dict>
153
39
  <key>openDocuments</key>
154
40
  <array>
155
- <string>bin/distil</string>
156
- <string>lib/distil/project/external-project.rb</string>
157
- <string>lib/distil/project/distil-project.rb</string>
158
- <string>lib/distil/project.rb</string>
159
- <string>assets/distil.js</string>
160
- <string>Rakefile</string>
161
- <string>lib/distil.rb</string>
162
- <string>distil.gemspec</string>
41
+ <string>lib/distil/target.rb</string>
163
42
  </array>
164
43
  <key>showFileHierarchyDrawer</key>
165
44
  <false/>
166
45
  <key>windowFrame</key>
167
- <string>{{351, 0}, {1089, 878}}</string>
46
+ <string>{{831, 300}, {1089, 878}}</string>
168
47
  </dict>
169
48
  </plist>
@@ -155,6 +155,7 @@ class Configurable
155
155
  if type.respond_to?(:from_options)
156
156
  type.from_options(value, self)
157
157
  else
158
+ puts "type=#{type} value=#{value}"
158
159
  type.new(value)
159
160
  end
160
161
  end
@@ -23,7 +23,8 @@ module Distil
23
23
  asset_map= []
24
24
  assets.each { |a|
25
25
  if can_embed_file?(a)
26
- content= target.get_content_for_file(a)
26
+ next if @files.include?(a)
27
+ content= a.minified_content(target.get_content_for_file(a))
27
28
  content= content.gsub("\\", "\\\\").gsub("\n", "\\n").gsub("\"", "\\\"").gsub("'", "\\\\'")
28
29
  asset_references << "\"#{target.alias_for_asset(a)}\": \"#{content}\""
29
30
  else
@@ -0,0 +1,42 @@
1
+ module Distil
2
+
3
+ require "#{VENDOR_DIR}/pdoc/lib/pdoc"
4
+
5
+ class PDocProduct < Product
6
+
7
+ option :pdoc_template, "#{VENDOR_DIR}/pdoc-template"
8
+ option :doc_folder, Interpolated, "$(path)/doc"
9
+
10
+ extension "js"
11
+
12
+ def filename
13
+ File.join(doc_folder, 'index.html')
14
+ end
15
+
16
+ def write_output
17
+ return if up_to_date
18
+ @up_to_date= true
19
+
20
+ PDoc.run({
21
+ :source_files => files,
22
+ :destination => doc_folder,
23
+ :templates => pdoc_template,
24
+ :syntax_highlighter => :pygments,
25
+ :markdown_parser => :bluecloth,
26
+ # :src_code_href => proc { |entity|
27
+ # "http://github.com/example/ex/#{entity.file}##{entity.line_number}"
28
+ # },
29
+ :pretty_urls => true,
30
+ :bust_cache => true,
31
+ :name => 'Example JavaScript Framework',
32
+ :short_name => 'Ex',
33
+ :home_url => 'http://example.com',
34
+ :doc_url => 'http://example.com/api',
35
+ :version => "1.2.0",
36
+ :copyright_notice => 'This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.'
37
+ })
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -104,4 +104,5 @@ require 'distil/product/css-product'
104
104
  require 'distil/product/javascript-base-product'
105
105
  require 'distil/product/javascript-product'
106
106
  require 'distil/product/javascript-doc-product'
107
+ require 'distil/product/pdoc-product'
107
108
  require 'distil/product/page-product'
@@ -1,9 +1,7 @@
1
1
  require 'fileutils'
2
2
 
3
- $compressor = File.expand_path("#{VENDOR_DIR}/yuicompressor-2.4.2.jar")
4
-
5
3
  module Distil
6
-
4
+
7
5
  class SourceFile
8
6
  attr_accessor :parent_folder, :full_path
9
7
  class_attr :extension
@@ -100,7 +98,7 @@ module Distil
100
98
  return source if !content_type
101
99
  buffer= ""
102
100
 
103
- IO.popen("java -jar #{$compressor} --type #{content_type}", "r+") { |pipe|
101
+ IO.popen("java -jar #{COMPRESSOR} --type #{content_type}", "r+") { |pipe|
104
102
  pipe.puts(source)
105
103
  pipe.close_write
106
104
  buffer= pipe.read
@@ -165,6 +163,6 @@ module Distil
165
163
  end
166
164
 
167
165
  # load all the other file types
168
- Dir.glob("#{LIB_DIR}/distil/source-file/*-file.rb") { |file|
166
+ Dir.glob("#{Distil::LIB_DIR}/distil/source-file/*-file.rb") { |file|
169
167
  require file
170
168
  }
data/lib/distil/target.rb CHANGED
@@ -16,7 +16,7 @@ module Distil
16
16
  option :include_projects, [], :aliases=>['include']
17
17
 
18
18
  option :validate, true
19
- option :generate_docs, false
19
+ option :generate_docs, nil
20
20
 
21
21
  option :minify, true
22
22
  option :compress, true
@@ -75,7 +75,11 @@ module Distil
75
75
  end
76
76
 
77
77
  if generate_docs
78
- product_types << JavascriptDocProduct
78
+ if ('pdoc'==generate_docs)
79
+ product_types << PDocProduct
80
+ else
81
+ product_types << JavascriptDocProduct
82
+ end
79
83
  end
80
84
 
81
85
  @products=[]
@@ -117,7 +121,6 @@ module Distil
117
121
  @probed << file
118
122
 
119
123
  tasks.each { |t| t.include_file(file) }
120
-
121
124
  file.dependencies.each { |d| include_file(d) }
122
125
  @assets.merge(file.assets)
123
126
  @assets << file
data/lib/distil/task.rb CHANGED
@@ -45,6 +45,6 @@ module Distil
45
45
  end
46
46
 
47
47
  # load all the other task types
48
- Dir.glob("#{LIB_DIR}/distil/task/*-task.rb") { |file|
48
+ Dir.glob("#{Distil::LIB_DIR}/distil/task/*-task.rb") { |file|
49
49
  require file
50
50
  }
data/lib/distil.rb CHANGED
@@ -46,20 +46,6 @@ class String
46
46
  end
47
47
 
48
48
 
49
- module Distil
50
-
51
- FRAMEWORK_TYPE = "framework"
52
- APP_TYPE = "application"
53
-
54
- WEAK_LINKAGE = 'weak'
55
- STRONG_LINKAGE = 'strong'
56
- LAZY_LINKAGE = 'lazy'
57
-
58
- DEBUG_MODE = 'debug'
59
- RELEASE_MODE = 'release'
60
-
61
- end
62
-
63
49
  # Do a simple token substitution. Tokens begin and end with @.
64
50
  def replace_tokens(string, params)
65
51
  return string.gsub(/(\n[\t ]*)?@([^@ \t\r\n]*)@/) { |m|
@@ -74,6 +60,20 @@ def replace_tokens(string, params)
74
60
  }
75
61
  end
76
62
 
63
+ module Distil
64
+
65
+ FRAMEWORK_TYPE = "framework"
66
+ APP_TYPE = "application"
67
+
68
+ WEAK_LINKAGE = 'weak'
69
+ STRONG_LINKAGE = 'strong'
70
+ LAZY_LINKAGE = 'lazy'
71
+
72
+ DEBUG_MODE = 'debug'
73
+ RELEASE_MODE = 'release'
74
+
75
+ end
76
+
77
77
  require 'distil/browser'
78
78
  require 'distil/error-reporter'
79
79
  require 'distil/configurable'
data/vendor/pdoc/Rakefile CHANGED
@@ -8,9 +8,9 @@ task :build_doc do
8
8
  :destination => OUTPUT_DIR,
9
9
  :syntax_highlighter => :pygments,
10
10
  :markdown_parser => :bluecloth,
11
- :src_code_href => proc { |file, line|
12
- "http://github.com/example/ex/#{file}##{line}"
13
- },
11
+ # :src_code_href => proc { |file, line|
12
+ # "http://github.com/example/ex/#{file}##{line}"
13
+ # },
14
14
  :pretty_urls => false,
15
15
  :bust_cache => true,
16
16
  :name => 'Example JavaScript Framework',