class Guard::Internals::Session
TODO: split into a commandline class and session (plugins, groups) TODO: swap session and metadata
Constants
- DEFAULT_OPTIONS
Attributes
TODO: create a EvaluatorResult class?
Public Class Methods
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
Source
# File lib/guard/internals/session.rb, line 98 def clearing(on) @clear = on end
Source
# File lib/guard/internals/session.rb, line 102 def clearing? @clear end
Also aliased as: clear?
Source
# File lib/guard/internals/session.rb, line 43 def cmdline_groups @cmdline_groups.dup.freeze end
Source
# File lib/guard/internals/session.rb, line 47 def cmdline_plugins @cmdline_plugins.dup.freeze end
Source
# 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
TODO: call this from within action, not within interactor command
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
Source
# File lib/guard/internals/session.rb, line 94 def guardfile_ignore=(ignores) @guardfile_ignore += Array(ignores).flatten end
Source
# File lib/guard/internals/session.rb, line 155 def guardfile_notification=(config) @guardfile_notifier_options.merge!(config) end
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
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
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
Source
# File lib/guard/internals/session.rb, line 112 def watchdirs @watchdirs_from_guardfile ||= nil @watchdirs_from_guardfile || @watchdirs end
Source
# 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
set by Dsl
with :directories() command