class Guard::JekyllPlus::Config

Constants

EXTS

Attributes

destination[R]
extensions[R]
jekyll_config[R]
jekyll_serve_options[R]
server_root[R]

Public Class Methods

new(options) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 8
def initialize(options)
  @options = {
    extensions: [],
    config: ['_config.yml'],
    serve: false,
    rack_config: nil,
    drafts: false,
    future: false,
    config_hash: nil,
    silent: false,
    msg_prefix: 'Jekyll '
  }.merge(options)

  @jekyll_config = load_config(@options)

  @source = local_path(@jekyll_config['source'])
  @destination = local_path(@jekyll_config['destination'])
  @msg_prefix = @options[:msg_prefix]

  # Convert array of extensions into a regex for matching file extensions
  # eg, /\.md$|\.markdown$|\.html$/i
  #
  extensions  = @options[:extensions].concat(EXTS).flatten.uniq
  extensions.map! { |e| Regexp.quote(e.sub(/^\./, '')) }
  @extensions = /\.(?:#{extensions.join('|')})$/i
end

Public Instance Methods

baseurl() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 71
def baseurl
  @jekyll_config['baseurl']
end
config_file?(file) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 43
def config_file?(file)
  @options[:config].include?(file)
end
error(msg) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 55
def error(msg)
  Compat::UI.error(@msg_prefix + msg)
end
excluded?(path) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 90
def excluded?(path)
  @jekyll_config['exclude'].any? { |glob| File.fnmatch?(glob, path) }
end
host() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 67
def host
  @jekyll_config['host']
end
info(msg) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 51
def info(msg)
  Compat::UI.info(@msg_prefix + msg) unless silent?
end
port() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 75
def port
  @jekyll_config['port']
end
rack_config() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 79
def rack_config
  @options[:rack_config]
end
rack_environment() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 83
def rack_environment
  silent? ? nil : 'development'
end
reload() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 47
def reload
  @jekyll_config = load_config(@options)
end
serve?() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 63
def serve?
  @options[:serve]
end
server_options() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 39
def server_options
  jekyll_config
end
source() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 59
def source
  @jekyll_config['source']
end
watch_regexp() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 94
def watch_regexp
  %r{^(?!#{destination}\/).*}
end

Private Instance Methods

jekyllize_options(options) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 113
def jekyllize_options(options)
  opts = options.dup
  return opts[:config_hash] if opts[:config_hash]
  return opts unless opts[:config]
  opts[:config] = [opts[:config]] unless opts[:config].is_a? Array
  opts
end
load_config(options) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 104
def load_config(options)
  config = ::Jekyll.configuration(jekyllize_options(options))

  # Override configuration with guard option values
  config['show_drafts'] = options[:drafts]
  config['future']      = options[:future]
  config
end
local_path(path) click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 121
def local_path(path)
  # TODO: what is this for?
  Dir.chdir('.')

  current = Dir.pwd
  path = path.sub current, ''
  if path == ''
    './'
  else
    path.sub(%r{^/}, '')
  end
end
silent?() click to toggle source
# File lib/guard/jekyll_plus/config.rb, line 100
def silent?
  @options[:silent] || @options['silent']
end