class Guard::Internals::Session
TODO: split into a commandline class and session (plugins, groups) TODO: swap session and metadata
Constants
- DEFAULT_OPTIONS
Attributes
groups[R]
guardfile_group_scope[R]
TODO: create a EvaluatorResult class?
guardfile_ignore[R]
guardfile_ignore_bang[RW]
guardfile_plugin_scope[R]
interactor_name[R]
plugins[R]
Public Class Methods
new(new_options)
click to toggle source
# File lib/guard/internals/session.rb, line 51 def initialize(new_options) @options = Options.new(new_options, DEFAULT_OPTIONS) @plugins = Plugins.new @groups = Groups.new @cmdline_groups = @options[:group] @cmdline_plugins = @options[:plugin] @clear = @options[:clear] @debug = @options[:debug] @watchdirs = Array(@options[:watchdir]) @notify = @options[:notify] @interactor_name = @options[:no_interactions] ? :sleep : :pry_wrapper @guardfile_plugin_scope = [] @guardfile_group_scope = [] @guardfile_ignore = [] @guardfile_ignore_bang = [] @guardfile_notifier_options = {} end
Public Instance Methods
clearing(on)
click to toggle source
# File lib/guard/internals/session.rb, line 98 def clearing(on) @clear = on end
clearing?()
click to toggle source
# File lib/guard/internals/session.rb, line 102 def clearing? @clear end
Also aliased as: clear?
cmdline_groups()
click to toggle source
# File lib/guard/internals/session.rb, line 43 def cmdline_groups @cmdline_groups.dup.freeze end
cmdline_plugins()
click to toggle source
# File lib/guard/internals/session.rb, line 47 def cmdline_plugins @cmdline_plugins.dup.freeze end
convert_scope(entries)
click to toggle source
TODO: call this from within action, not within interactor command
# File lib/guard/internals/session.rb, line 162 def convert_scope(entries) scopes = { plugins: [], groups: [] } unknown = [] entries.each do |entry| if plugin = plugins.all(entry).first scopes[:plugins] << plugin elsif group = groups.all(entry).first scopes[:groups] << group else unknown << entry end end [scopes, unknown] end
debug?()
click to toggle source
# File lib/guard/internals/session.rb, line 108 def debug? @debug end
evaluator_options()
click to toggle source
# File lib/guard/internals/session.rb, line 136 def evaluator_options opts = { guardfile: @options[:guardfile] } # TODO: deprecate :guardfile_contents if @options[:guardfile_contents] opts[:contents] = @options[:guardfile_contents] end opts end
guardfile_ignore=(ignores)
click to toggle source
# File lib/guard/internals/session.rb, line 94 def guardfile_ignore=(ignores) @guardfile_ignore += Array(ignores).flatten end
guardfile_notification=(config)
click to toggle source
# File lib/guard/internals/session.rb, line 155 def guardfile_notification=(config) @guardfile_notifier_options.merge!(config) end
guardfile_scope(scope)
click to toggle source
# File lib/guard/internals/session.rb, line 74 def guardfile_scope(scope) opts = scope.dup groups = Array(opts.delete(:groups)) group = Array(opts.delete(:group)) @guardfile_group_scope = Array(groups) + Array(group) plugins = Array(opts.delete(:plugins)) plugin = Array(opts.delete(:plugin)) @guardfile_plugin_scope = Array(plugins) + Array(plugin) fail "Unknown options: #{opts.inspect}" unless opts.empty? end
listener_args()
click to toggle source
# File lib/guard/internals/session.rb, line 123 def listener_args if @options[:listen_on] [:on, @options[:listen_on]] else listener_options = {} [:latency, :force_polling, :wait_for_delay].each do |option| listener_options[option] = @options[option] if @options[option] end expanded_watchdirs = watchdirs.map { |dir| File.expand_path dir } [:to, *expanded_watchdirs, listener_options] end end
notify_options()
click to toggle source
# File lib/guard/internals/session.rb, line 145 def notify_options names = @guardfile_notifier_options.keys return { notify: false } if names.include?(:off) { notify: @options[:notify], notifiers: @guardfile_notifier_options } end
watchdirs()
click to toggle source
# File lib/guard/internals/session.rb, line 112 def watchdirs @watchdirs_from_guardfile ||= nil @watchdirs_from_guardfile || @watchdirs end
watchdirs=(dirs)
click to toggle source
set by Dsl
with :directories() command
# File lib/guard/internals/session.rb, line 118 def watchdirs=(dirs) dirs = [Dir.pwd] if dirs.empty? @watchdirs_from_guardfile = dirs.map { |dir| File.expand_path dir } end