distil 0.12.6 → 0.13.0

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