Sha256: 60220b33053293faa5a6ded094f55b45474772594394cb52eedb9ceca31f58ee

Contents?: true

Size: 944 Bytes

Versions: 1

Compression:

Stored size: 944 Bytes

Contents

require_relative 'data_bags/bag'
require_relative 'data_bags/item'

module Bagboy
  module Chef
    class DataBagsHelper

      include Singleton

      def initialize
        @file = Core::FileHelper.instance
      end

      def setup( opts )
        @file = opts[:file] if opts[:file]
      end

      def data_bag ( bag_name )
        DataBags::Bag.new( {path: data_bag_directory( bag_name ), name: bag_name} )
      end

      def data_bags
        get_data_bags data_bags_directory
      end

      def data_bags_directory
        File.join( Bagboy.chef_repo, 'data_bags' )
      end

      def data_bag_directory( bag )
        File.join( Bagboy.chef_repo, 'data_bags', bag )
      end

      private

      def get_data_bags( path )
        files = @file.get_directories( path )
        bags  = []
        files.each do |file|
          bag = data_bag( file )
          bags << bag
        end
        bags
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bagboy-0.0.1 lib/bagboy/chef/data_bags_helper.rb