Sha256: 079be1eecd9bd521e765fdd0b277d40dd05e960b5375455a08cac9067ed01d77
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
module Bagboy module Chef module DataBags class Bag attr_reader :name def initialize( opts = {} ) @path = opts[:path] || '' @name = opts[:name] || '' @file = opts[:file] || Core::FileHelper.instance @scm = opts[:scm] || Core::SCMHelper.instance @knife = opts[:knife] || Bagboy::Chef::Knife.instance end def items get_items @file.get_files( @path ) end def item( name ) name = name.gsub(/[^\w\-]/, '_') path = item_path( name + '.json' ) Item.new( {path: path, name: name, bag: @name} ) end def create pull if unique? Dir.mkdir @path sync true else false end end private def sync @knife.create_data_bag @name end def pull @scm.pull end def get_items( items ) data_items = [] items.each do |item| path = item_path item name = item.sub('.json', '') data_items << Item.new( {path: path, name: name} ) end data_items end def item_path ( item ) File.join( @path, item ) end def unique? return false if @name == '' return false if @file.get_files(data_bags_path).include?(@name) true end def data_bags_path File.expand_path( File.join(@path, '/..')) end 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/bag.rb |