Module: AdminModule

Defined in:
lib/admin_module/client.rb,
lib/admin_module.rb,
lib/admin_module/dc.rb,
lib/admin_module/cli.rb,
lib/admin_module/ppms.rb,
lib/admin_module/locks.rb,
lib/admin_module/rules.rb,
lib/admin_module/tasks.rb,
lib/admin_module/stages.rb,
lib/admin_module/command.rb,
lib/admin_module/version.rb,
lib/admin_module/rulesets.rb,
lib/admin_module/guideline.rb,
lib/admin_module/snapshots.rb,
lib/admin_module/command/dc.rb,
lib/admin_module/command/gdl.rb,
lib/admin_module/command/ppm.rb,
lib/admin_module/command/lock.rb,
lib/admin_module/command/rule.rb,
lib/admin_module/command/task.rb,
lib/admin_module/page_factory.rb,
lib/admin_module/command/stage.rb,
lib/admin_module/config_helper.rb,
lib/admin_module/command/config.rb,
lib/admin_module/command/ruleset.rb,
lib/admin_module/command/snapshot.rb,
lib/admin_module/command/client_access.rb,
lib/admin_module/pages/dc_definitions_page.rb,
lib/admin_module/pages/workflow_tasks_page.rb,
lib/admin_module/pages/snapshot_definitions_page.rb

Overview

File

client_access.rb

Purpose

Module providing client access helper methods for CLI classes.

Author

Jeff McAffee 07/17/2014

Defined Under Namespace

Modules: Command, Pages, Rake Classes: CLI, Client, ConfigHelper, Configuration, DC, Guideline, Locks, PageFactory, Ppms, Rules, Rulesets, Runner, Snapshots, Stages, Tasks

Constant Summary collapse

CONFIG_FILE_NAME =
'.admin_module'
VERSION =
"0.1.8"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.clientObject

Returns the value of attribute client.



32
33
34
# File 'lib/admin_module.rb', line 32

def client
  @client
end

.configurationObject

Returns the value of attribute configuration.



31
32
33
# File 'lib/admin_module.rb', line 31

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Setup admin_module configuration

Attempts to find and load a configuration file the first time it’s requested. If a config file cannot be found on in the current directory tree (moving towards trunk, not the leaves), a default configuration object is created.

If a block is provided, the configuration object is yielded to the block after the configuration is loaded/created.

Yields:



47
48
49
50
51
52
53
54
# File 'lib/admin_module.rb', line 47

def self.configure
  if self.configuration.nil?
    unless self.load_configuration
      self.configuration = Configuration.new
    end
  end
  yield(configuration) if block_given?
end

.find_config_pathObject

Walk up the directory tree from current working dir (pwd) till a file named .admin_module is found

Returns file path if found, nil if not.



63
64
65
# File 'lib/admin_module.rb', line 63

def self.find_config_path
  path = Pathname(Pathname.pwd).ascend{|d| h=d+CONFIG_FILE_NAME; break h if h.file?}
end

.load_configuration(path = nil) ⇒ Object

Load the configuration from disk

Returns true if config file found and loaded, false otherwise.



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/admin_module.rb', line 102

def self.load_configuration(path = nil)
  # If no path provided, see if we can find one in the dir tree.
  if path.nil?
    path = find_config_path
  end

  return false if path.nil?
  return false unless Pathname(path).exist?

  File.open(path, 'r') do |f|
    self.configuration = YAML.load(f)
    puts "configuration loaded from #{path}" if $debug
  end

  true
end

.save_configuration(path = nil) ⇒ Object

Write configuration to disk

Writes to current working dir (pwd) if path is nil

Returns path of emitted file



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/admin_module.rb', line 75

def self.save_configuration(path = nil)
  # If no path provided, see if we can find one in the dir tree.
  if path.nil?
    path = find_config_path
  end

  # Still no path? Use the current working dir.
  if path.nil?
    path = Pathname.pwd
  end

  unless path.to_s.end_with?('/' + CONFIG_FILE_NAME)
    path = Pathname(path) + CONFIG_FILE_NAME
  end

  path = Pathname(path).expand_path
  File.write(path, YAML.dump(configuration))

  path
end