Sha256: fdecb05e4c385ae82aa24d5780450ad0ac14c19599c0119ad68ea162ff15e33b

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require "yaml"

module Shelly
  class Cloud < Model
    attr_accessor :code_name, :content

    def initialize(attributes = {})
      @code_name = attributes["code_name"]
      @content   = attributes["content"]
    end

    # Public: Return databases for given Cloud in Cloudfile
    # Returns Array of databases
    def databases
      content["servers"].map do |server, settings|
        settings["databases"]
      end.flatten.uniq
    end

    # Public: Delayed job enabled?
    # Returns true if delayed job is present
    def delayed_job?
      option?("delayed_job")
    end

    # Public: Whenever enabled?
    # Returns true if whenever is present
    def whenever?
      option?("whenever")
    end

    # Public: Return databases to backup for given Cloud in Cloudfile
    # Returns Array of databases, except redis db
    def backup_databases
      databases - ['redis']
    end

    def to_s
      code_name
    end

    private

    # Internal: Checks if specified option is present
    def option?(option)
      content["servers"].any? {|_, settings| settings.has_key?(option)}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shelly-0.1.24.pre2 lib/shelly/cloud.rb