Class: Bumbleworks::Configuration
- Inherits:
-
Object
- Object
- Bumbleworks::Configuration
- Defined in:
- lib/bumbleworks/configuration.rb
Overview
Stores configuration information
Configuration information is loaded from a configuration block defined within the client application.
Instance Attribute Summary collapse
-
#storage_adapters ⇒ Object
readonly
Returns the value of attribute storage_adapters.
Class Method Summary collapse
Instance Method Summary collapse
-
#add_storage_adapter(adapter) ⇒ Object
Add a storage adapter to the set of possible adapters.
-
#clear! ⇒ Object
Clears all memoize variables and configuration settings.
-
#definitions_directory ⇒ Object
Path where Bumbleworks will look for ruote process defintiions to load.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
-
#participants_directory ⇒ Object
Path where Bumbleworks will look for ruote participants to load.
-
#root ⇒ Object
Root folder where Bumbleworks looks for ruote assets (participants, process_definitions, etc.) The root path must be absolute.
-
#tasks_directory ⇒ Object
Path where Bumbleworks will look for task modules to load.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
76 77 78 |
# File 'lib/bumbleworks/configuration.rb', line 76 def initialize @storage_adapters = [] end |
Instance Attribute Details
#storage_adapters ⇒ Object (readonly)
Returns the value of attribute storage_adapters.
15 16 17 |
# File 'lib/bumbleworks/configuration.rb', line 15 def storage_adapters @storage_adapters end |
Class Method Details
.define_setting(name) ⇒ Object
18 19 20 21 |
# File 'lib/bumbleworks/configuration.rb', line 18 def define_setting(name) defined_settings << name attr_accessor name end |
.defined_settings ⇒ Object
23 24 25 |
# File 'lib/bumbleworks/configuration.rb', line 23 def defined_settings @defined_settings ||= [] end |
Instance Method Details
#add_storage_adapter(adapter) ⇒ Object
Add a storage adapter to the set of possible adapters. Takes an object that responds to ‘driver`, `use?`, `storage_class`, and `display_name`.
129 130 131 132 133 134 135 |
# File 'lib/bumbleworks/configuration.rb', line 129 def add_storage_adapter(adapter) raise ArgumentError, "#{adapter} is not a Bumbleworks storage adapter" unless [:driver, :use?, :storage_class, :display_name].all? { |m| adapter.respond_to?(m) } @storage_adapters << adapter @storage_adapters end |
#clear! ⇒ Object
Clears all memoize variables and configuration settings
139 140 141 142 143 |
# File 'lib/bumbleworks/configuration.rb', line 139 def clear! defined_settings.each {|setting| instance_variable_set("@#{setting}", nil)} @storage_adapters = [] @definitions_folder = @participants_folder = @tasks_folder = nil end |
#definitions_directory ⇒ Object
Path where Bumbleworks will look for ruote process defintiions to load. The path can be relative or absolute. Relative paths are relative to Bumbleworks.root.
84 85 86 |
# File 'lib/bumbleworks/configuration.rb', line 84 def definitions_directory @definitions_folder ||= default_definition_directory end |
#participants_directory ⇒ Object
Path where Bumbleworks will look for ruote participants to load. The path can be relative or absolute. Relative paths are relative to Bumbleworks.root.
92 93 94 |
# File 'lib/bumbleworks/configuration.rb', line 92 def participants_directory @participants_folder ||= default_participant_directory end |
#root ⇒ Object
Root folder where Bumbleworks looks for ruote assets (participants, process_definitions, etc.) The root path must be absolute. It can be defined through a configuration block:
Bumbleworks.configure { |c| c.root = '/somewhere' }
Or directly:
Bumbleworks.root = '/somewhere/else/'
If the root is not defined, Bumbleworks will use the root of known frameworks (Rails, Sinatra and Rory). Otherwise, it will raise an error if not defined.
116 117 118 119 120 121 122 123 124 |
# File 'lib/bumbleworks/configuration.rb', line 116 def root @root ||= case when defined?(Rails) then Rails.root when defined?(Rory) then Rory.root when defined?(Sinatra::Application) then Sinatra::Application.root else raise UndefinedSetting.new("Bumbleworks.root must be set") unless @root end end |
#tasks_directory ⇒ Object
Path where Bumbleworks will look for task modules to load. The path can be relative or absolute. Relative paths are relative to Bumbleworks.root.
100 101 102 |
# File 'lib/bumbleworks/configuration.rb', line 100 def tasks_directory @tasks_folder ||= default_tasks_directory end |