Sha256: 6ac48a76a1735d0715e0b78ed2b9f42df957eb824be9d34338e1a22ee30dbe3c

Contents?: true

Size: 1.78 KB

Versions: 11

Compression:

Stored size: 1.78 KB

Contents

module Ridley
  # @author Jamie Winsor <reset@riotgames.com>
  class EnvironmentObject < Ridley::ChefObject
    set_chef_id "name"
    set_chef_type "environment"
    set_chef_json_class "Chef::Environment"

    attribute :name,
      required: true

    attribute :description,
      default: String.new

    attribute :default_attributes,
      default: Hashie::Mash.new

    attribute :override_attributes,
      default: Hashie::Mash.new

    attribute :cookbook_versions,
      default: Hashie::Mash.new

    # Set an environment level default attribute given the dotted path representation of
    # the Chef attribute and value
    #
    # @example setting and saving an environment level default attribute
    #
    #   obj = environment.find("production")
    #   obj.set_default_attribute("my_app.billing.enabled", false)
    #   obj.save
    #
    # @param [String] key
    # @param [Object] value
    #
    # @return [HashWithIndifferentAccess]
    def set_default_attribute(key, value)
      attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
      self.default_attributes = self.default_attributes.deep_merge(attr_hash)
    end

    # Set an environment level override attribute given the dotted path representation of
    # the Chef attribute and value
    #
    # @example setting and saving an environment level override attribute
    #
    #   obj = environment.find("production")
    #   obj.set_override_attribute("my_app.billing.enabled", false)
    #   obj.save
    #
    # @param [String] key
    # @param [Object] value
    #
    # @return [HashWithIndifferentAccess]
    def set_override_attribute(key, value)
      attr_hash = HashWithIndifferentAccess.from_dotted_path(key, value)
      self.override_attributes = self.override_attributes.deep_merge(attr_hash)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ridley-1.0.0.rc2 lib/ridley/chef_objects/environment_object.rb
ridley-1.0.0.rc1 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.4 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.3 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.2 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.1 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.0 lib/ridley/chef_objects/environment_object.rb
ridley-0.11.2 lib/ridley/chef_objects/environment_object.rb
ridley-0.12.0.rc1 lib/ridley/chef_objects/environment_object.rb
ridley-0.11.1 lib/ridley/chef_objects/environment_object.rb
ridley-0.11.0.rc1 lib/ridley/chef_objects/environment_object.rb