class Octopress::AssetPipeline::Plugin
Public Instance Methods
add_files()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 29 def add_files if Octopress.site.pages.empty? && Octopress.site.posts.empty? Octopress.site.read_directories end add_static_files add_page_files add_stylesheets add_javascripts end
config(*args)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 40 def config(*args) @config ||= begin c = Ink.configuration['asset_pipeline'] # Deprecation warning - remove in 2.1 if c['javascripts_dir'] warn('Deprecation Warning:'.yellow + ' Asset_pipeline configuration key `javascripts_dir` has been renamed to `javascripts_source`. Please update your configuration.') c['javascripts_source'] = c.delete('javascripts_dir') end if c['stylesheets_dir'] warn('Deprecation Warning:'.yellow + ' Asset_pipeline configuration key `stylesheets_dir` has been renamed to `stylesheets_source`. Please update your configuration.') c['stylesheets_source'] = c.delete('stylesheets_dir') end { 'stylesheets_source' => ['stylesheets', 'css'], 'javascripts_source' => ['javascripts', 'js'] }.merge(c).merge({ 'disable' => {} }) end end
register()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 15 def register reset # Tell Jekyll to read static files and pages # This is necessary when Jekyll isn't being asked to build a site, # like when a user runs the list command to list assets # if Octopress::Docs.enabled? add_docs end if Octopress::Ink.enabled? add_files end end
Private Instance Methods
add_javascripts()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 84 def add_javascripts if !combine_js # Add tags for {% js_asset_tag %} javascripts.each { |f| Ink::Plugins.add_js_tag(f.tag) } @js.clear @coffee.clear end end
add_page_files()
click to toggle source
Finds Sass
and Coffeescript
files files registered by Jekyll
# File lib/octopress-asset-pipeline.rb, line 120 def add_page_files find_page_assets(asset_dirs, '.scss', '.sass', '.coffee', '.js', '.css').each do |f| if f.ext =~ /\.coffee$/ @coffee << Coffeescript.new(self, f) Octopress.site.pages.delete(f) if combine_js elsif f.ext =~ /\.s[ca]ss/ @sass << Sass.new(self, f) Octopress.site.pages.delete(f) if combine_css elsif f.ext =~ /\.css/ @css << Css.new(self, f) Octopress.site.pages.delete(f) if combine_css elsif f.ext =~ /\.js/ @js << Javascript.new(self, f) Octopress.site.pages.delete(f) if combine_js end end end
add_static_files()
click to toggle source
Finds css and js files files registered by Jekyll
# File lib/octopress-asset-pipeline.rb, line 106 def add_static_files find_static_assets(asset_dirs, '.js', '.css').each do |f| if File.extname(f.path) == '.js' @js << Javascript.new(self, f) Octopress.site.static_files.delete(f) if combine_js elsif File.extname(f.path) == '.css' @css << Css.new(self, f) Octopress.site.static_files.delete(f) if combine_css end end end
add_stylesheets()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 76 def add_stylesheets if !combine_css # Add tags for {% css_asset_tag %} stylesheets.each { |f| Ink::Plugins.add_css_tag(f.tag) } @css.clear end end
asset_dirs()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 64 def asset_dirs [config['stylesheets_source'], config['javascripts_source']].flatten end
combine_css()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 68 def combine_css config['combine_css'] end
combine_js()
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 72 def combine_js config['combine_js'] end
find_assets(assets, dirs, extensions)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 148 def find_assets(assets, dirs, extensions) assets.select do |f| if extensions.include?(File.extname(f.path)) path = f.path.sub(File.join(Octopress.site.source, ''), '') in_dir?(path, dirs) end end end
find_page_assets(dirs, *extensions)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 143 def find_page_assets(dirs, *extensions) assets = Octopress.site.pages.dup.sort_by(&:path) find_assets(assets, dirs, extensions) end
find_static_assets(dirs, *extensions)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 138 def find_static_assets(dirs, *extensions) assets = Octopress.site.static_files.dup.sort_by(&:path) find_assets(assets, dirs, extensions) end
in_dir?(file, *dirs)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 157 def in_dir?(file, *dirs) dirs.flatten.select do |d| file.match(/^#{d}\//) end.size > 0 end
sort(files, config)
click to toggle source
# File lib/octopress-asset-pipeline.rb, line 93 def sort(files, config) sorted = [] config.each do |item| files.each do |file| sorted << files.delete(file) if file.path.to_s.include? item end end sorted.concat files end