Module: EY::Serverside

Defined in:
lib/engineyard-serverside.rb,
lib/engineyard-serverside/cli.rb,
lib/engineyard-serverside/task.rb,
lib/engineyard-serverside/about.rb,
lib/engineyard-serverside/paths.rb,
lib/engineyard-serverside/shell.rb,
lib/engineyard-serverside/deploy.rb,
lib/engineyard-serverside/server.rb,
lib/engineyard-serverside/servers.rb,
lib/engineyard-serverside/spawner.rb,
lib/engineyard-serverside/version.rb,
lib/engineyard-serverside/cli_helpers.rb,
lib/engineyard-serverside/deploy_hook.rb,
lib/engineyard-serverside/deprecation.rb,
lib/engineyard-serverside/maintenance.rb,
lib/engineyard-serverside/rails_assets.rb,
lib/engineyard-serverside/configuration.rb,
lib/engineyard-serverside/shell/helpers.rb,
lib/engineyard-serverside/shell/yieldio.rb,
lib/engineyard-serverside/shell/formatter.rb,
lib/engineyard-serverside/dependency_manager.rb,
lib/engineyard-serverside/rails_assets/strategy.rb,
lib/engineyard-serverside/dependency_manager/npm.rb,
lib/engineyard-serverside/dependency_manager/base.rb,
lib/engineyard-serverside/dependency_manager/bundler.rb,
lib/engineyard-serverside/dependency_manager/composer.rb,
lib/engineyard-serverside/dependency_manager/legacy_helpers.rb

Defined Under Namespace

Modules: About, CLIHelpers Classes: CLI, DependencyManager, Deploy, DeployBase, DeployHook, Maintenance, Paths, RailsAssets, Server, Servers, Shell, Source, Spawner, Task

Constant Summary collapse

RemoteFailure =
Class.new StandardError
VERSION =
'2.3.3'
DEPRECATED_CLASSES =
{
  :LoggedOutput   => EY::Serverside::Shell::Helpers,
  :LockfileParser => EY::Serverside::DependencyManager::Bundler::Lockfile,
  :Strategies     => EY::Serverside::Source::Git
}

Class Method Summary collapse

Class Method Details

.const_missing(const) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/engineyard-serverside/deprecation.rb', line 22

def self.const_missing(const)
  if klass = DEPRECATED_CLASSES[const]
    deprecation_warning("EY::Serverside::#{const} has been deprecated. Please use: #{klass}")
    klass
  else
    super
  end
end

.deep_indifferentize(thing) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/engineyard-serverside.rb', line 50

def self.deep_indifferentize(thing)
  if thing.kind_of?(Hash)
    indifferent_hash = Thor::CoreExt::HashWithIndifferentAccess.new
    thing.each do |k, v|
      indifferent_hash[k] = deep_indifferentize(v)
    end
    indifferent_hash
  elsif thing.kind_of?(Array)
    thing.map {|x| deep_indifferentize(x)}
  else
    thing
  end
end

.deprecated_task(receiver, old_task, new_task) ⇒ Object



11
12
13
14
15
# File 'lib/engineyard-serverside/deprecation.rb', line 11

def self.deprecated_task(receiver, old_task, new_task)
  if receiver.respond_to?(old_task)
    deprecation_warning("Task ##{old_task} has been renamed to ##{new_task}.")
  end
end

.deprecation_warning(msg) ⇒ Object



7
8
9
# File 'lib/engineyard-serverside/deprecation.rb', line 7

def self.deprecation_warning(msg)
  $stderr.puts "DEPRECATION WARNING: #{msg}\n\t#{caller(2).first}"
end

.dna_jsonObject



45
46
47
# File 'lib/engineyard-serverside.rb', line 45

def self.dna_json
  @dna_json ||= read_encoded_dna
end

.dna_pathObject



64
65
66
# File 'lib/engineyard-serverside.rb', line 64

def self.dna_path
  '/etc/chef/dna.json'
end

.nodeObject



41
42
43
# File 'lib/engineyard-serverside.rb', line 41

def self.node
  @node ||= deep_indifferentize(MultiJson.load(dna_json))
end

.read_encoded_dnaObject



68
69
70
71
72
73
74
75
76
# File 'lib/engineyard-serverside.rb', line 68

def self.read_encoded_dna
  json = if File.exist?(dna_path)
           `sudo cat #{dna_path}`
         else
           '{}'
         end
  json.force_encoding('UTF-8') if $string_encodings
  json
end