Module: Farscape

Extended by:
Plugins
Defined in:
lib/farscape/agent.rb,
lib/farscape/cache.rb,
lib/farscape/errors.rb,
lib/farscape/logger.rb,
lib/plugins/plugins.rb,
lib/farscape/clients.rb,
lib/farscape/plugins.rb,
lib/farscape/version.rb,
lib/farscape/discovery.rb,
lib/farscape/base_agent.rb,
lib/farscape/transition.rb,
lib/farscape/representor.rb,
lib/farscape/client/base_client.rb,
lib/farscape/client/http_client.rb,
lib/farscape/platform_resources.rb

Defined Under Namespace

Modules: BaseAgent, Exceptions, Plugins Classes: Agent, Discovery, PlatformResources, RepresentorAgent, SafeRepresentorAgent, TransitionAgent

Constant Summary collapse

VERSION =
'1.3.3'.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Methods included from Plugins

collect_values, construct_stack, disable, enable, extensions, find_attr_intersect, includes_middleware?, normalize_selector, order_middleware, set_plugin_states, why_disabled

Instance Attribute Details

#disabling_rulesObject (readonly)

Returns the value of attribute disabling_rules.



8
9
10
# File 'lib/farscape/plugins.rb', line 8

def disabling_rules
  @disabling_rules
end

#pluginsObject (readonly)

Returns the value of attribute plugins.



7
8
9
# File 'lib/farscape/plugins.rb', line 7

def plugins
  @plugins
end

Class Method Details

.cacheObject



5
6
7
# File 'lib/farscape/cache.rb', line 5

def self.cache
  @cache ||= ActiveSupport::Cache::MemoryStore.new
end

.cache=(new_cache) ⇒ Object



9
10
11
# File 'lib/farscape/cache.rb', line 9

def self.cache=(new_cache)
  @cache = new_cache
end

.clearObject

Removes all plugins and disablings of plugins



66
67
68
69
70
# File 'lib/farscape/plugins.rb', line 66

def self.clear
  @plugins = {}
  @disabling_rules = []
  @middleware_stack = nil
end

.clientsObject



5
6
7
# File 'lib/farscape/clients.rb', line 5

def self.clients
  @clients ||= {http: Farscape::Agent::HTTPClient}
end

.disable!(name_or_type) ⇒ Object

Prevents a plugin from being registered, and disables it if it’s already there



54
55
56
57
# File 'lib/farscape/plugins.rb', line 54

def self.disable!(name_or_type)
  @middleware_stack = nil
  @disabling_rules, @plugins = Plugins.disable(name_or_type, @disabling_rules, @plugins)
end

.disabled?(options) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/farscape/plugins.rb', line 45

def self.disabled?(options)
  Plugins.disabled?(@plugins, @disabling_rules, options)
end

.disabled_pluginsObject



41
42
43
# File 'lib/farscape/plugins.rb', line 41

def self.disabled_plugins
  Plugins.disabled_plugins(@plugins)
end

.disabling_rulesObject



18
19
20
# File 'lib/farscape/plugins.rb', line 18

def self.disabling_rules
  @disabling_rules
end

.enable!(name_or_type) ⇒ Object

Allows a plugin to be registered, and enables it if it’s already there



60
61
62
63
# File 'lib/farscape/plugins.rb', line 60

def self.enable!(name_or_type)
  @middleware_stack = nil
  @disabling_rules, @plugins = Plugins.enable(name_or_type, @disabling_rules, @plugins)
end

.enabled?(options) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/farscape/plugins.rb', line 49

def self.enabled?(options)
  Plugins.enabled?(@plugins, @disabling_rules, options)
end

.enabled_pluginsObject



37
38
39
# File 'lib/farscape/plugins.rb', line 37

def self.enabled_plugins
  Plugins.enabled_plugins(@plugins)
end

.loggerObject



5
6
7
# File 'lib/farscape/logger.rb', line 5

def self.logger
  @logger ||= Logger.new(STDOUT)
end

.logger=(new_logger) ⇒ Object



9
10
11
# File 'lib/farscape/logger.rb', line 9

def self.logger=(new_logger)
  @logger = new_logger
end

.middleware_stackObject

Returns the Poset representing middleware dependency



33
34
35
# File 'lib/farscape/plugins.rb', line 33

def self.middleware_stack
  @middleware_stack ||= Plugins.construct_stack(enabled_plugins)
end

.pluginsObject



14
15
16
# File 'lib/farscape/plugins.rb', line 14

def self.plugins
  @plugins
end

.register_plugin(options) ⇒ Object



22
23
24
25
26
# File 'lib/farscape/plugins.rb', line 22

def self.register_plugin(options)
  @middleware_stack = nil
  options[:enabled] = self.enabled?(options)
  @plugins[options[:name]] = options
end

.register_plugins(a_list) ⇒ Object



28
29
30
# File 'lib/farscape/plugins.rb', line 28

def self.register_plugins(a_list)
  a_list.each { |options| register_plugin(options) }
end