Sha256: 9085d041584804451d278df967c8590485898345dac56bcada66fedab85b9d53

Contents?: true

Size: 1 KB

Versions: 22

Compression:

Stored size: 1 KB

Contents

module Ridley
  class DataBagResource < Ridley::Resource
    require_relative 'data_bag_item_resource'

    set_resource_path "data"
    represented_by Ridley::DataBagObject

    attr_reader :item_resource

    finalizer :finalize_callback

    # @param [Celluloid::Registry] connection_registry
    # @param [String] data_bag_secret
    def initialize(connection_registry, data_bag_secret)
      super(connection_registry)
      @item_resource = DataBagItemResource.new_link(connection_registry, data_bag_secret)
    end

    # @param [String, #chef_id] object
    #
    # @return [nil, Ridley::DataBagResource]
    def find(object)
      chef_id = object.respond_to?(:chef_id) ? object.chef_id : object
      request(:get, "#{self.class.resource_path}/#{chef_id}")
      new(name: chef_id)
    rescue AbortError => ex
      return nil if ex.cause.is_a?(Errors::HTTPNotFound)
      abort(ex.cause)
    end

    private

      def finalize_callback
        item_resource.async.terminate if item_resource
      end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
ridley-5.1.1 lib/ridley/resources/data_bag_resource.rb
ridley-5.1.0 lib/ridley/resources/data_bag_resource.rb
ridley-5.0.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.6.1 lib/ridley/resources/data_bag_resource.rb
ridley-4.6.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.5.1 lib/ridley/resources/data_bag_resource.rb
ridley-4.5.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.4.3 lib/ridley/resources/data_bag_resource.rb
ridley-4.4.2 lib/ridley/resources/data_bag_resource.rb
ridley-4.4.1 lib/ridley/resources/data_bag_resource.rb
ridley-4.4.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.3.2 lib/ridley/resources/data_bag_resource.rb
ridley-4.3.1 lib/ridley/resources/data_bag_resource.rb
ridley-4.3.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.2.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.1.2 lib/ridley/resources/data_bag_resource.rb
ridley-4.1.1 lib/ridley/resources/data_bag_resource.rb
ridley-4.1.0 lib/ridley/resources/data_bag_resource.rb
ridley-4.0.0 lib/ridley/resources/data_bag_resource.rb
ridley-3.1.0 lib/ridley/resources/data_bag_resource.rb