class JekyllPagesApiSearch::Bundler
Constants
- BROWSERIFY_SCRIPT
- CONSTANTS_MODULE
- DIRNAME
Public Class Methods
baseurl_prefix(site)
click to toggle source
Generates the correct baseurl prefix.
# File lib/jekyll_pages_api_search/bundler.rb, line 47 def self.baseurl_prefix(site) baseurl = site.baseurl if baseurl.nil? || baseurl.empty? then return '/' elsif baseurl == '/' then return baseurl end return baseurl + '/' end
create_custom_renderer_bundle(site)
click to toggle source
# File lib/jekyll_pages_api_search/bundler.rb, line 21 def self.create_custom_renderer_bundle(site) browserify_config = Config.get(site, 'browserify') return if browserify_config.nil? source = File.join(site.source, browserify_config['source']) target = create_target_path(site, browserify_config['target']) execute_browserify(source, target, { standalone: 'renderJekyllPagesApiSearchResults' }) end
create_search_bundles(site)
click to toggle source
# File lib/jekyll_pages_api_search/bundler.rb, line 16 def self.create_search_bundles(site) create_custom_renderer_bundle(site) create_search_constants_bundle(site) end
create_search_constants_bundle(site)
click to toggle source
Generates a JavaScript module containing constants based on `site` values.
# File lib/jekyll_pages_api_search/bundler.rb, line 31 def self.create_search_constants_bundle(site) target = create_target_path(site, CONSTANTS_MODULE) constants = generate_constants(site) File.open(target, 'w') do |target_file| target_file.write(constants) end Compressor.gzip_in_memory_content({ target => constants }) end
create_target_path(site, target_file)
click to toggle source
Creates the target bundle path and its directory if it doesn't exist.
# File lib/jekyll_pages_api_search/bundler.rb, line 58 def self.create_target_path(site, target_file) target = File.join(site.dest, target_file) target_dir = File.dirname(target) if !Dir.exists?(target_dir) then FileUtils.mkdir_p(target_dir) end target end
execute_browserify(source, target, options)
click to toggle source
# File lib/jekyll_pages_api_search/bundler.rb, line 67 def self.execute_browserify(source, target, options) status = system('node', "#{BROWSERIFY_SCRIPT}", "#{source}", "#{target}", JSON.generate(options)) if $CHILD_STATUS.exitstatus.nil? $stderr.puts('Could not execute browserify script') exit 1 end exit $CHILD_STATUS.exitstatus if !status end
generate_constants(site)
click to toggle source
Creates an object of constants based on `site` values.
# File lib/jekyll_pages_api_search/bundler.rb, line 41 def self.generate_constants(site) return "var JEKYLL_PAGES_API_SEARCH_INDEX_URL = '" + baseurl_prefix(site) + SearchIndexBuilder::INDEX_FILE + "';\n" end