class BetweenMeals::Changeset

Convenience for dealing with changes Represents a list of diffs between two revisions as a series of Cookbook and Role objects

Basically, you always want to use BetweenMeals::Changes through this helper class.

Public Class Methods

new( logger, repo, start_ref, end_ref, locations, track_symlinks = false ) click to toggle source

rubocop:disable Metrics/ParameterLists

# File lib/between_meals/changeset.rb, line 33
def initialize(
  logger, repo, start_ref, end_ref, locations, track_symlinks = false
)
  # rubocop:enable Metrics/ParameterLists
  @logger = logger
  @repo = repo
  @cookbook_dirs = locations[:cookbook_dirs].dup
  @role_dir = locations[:role_dir]
  @databag_dir = locations[:databag_dir]
  @track_symlinks = track_symlinks
  # Figure out which files changed if refs provided
  # or return all files (full upload) otherwise
  if start_ref
    @files = []
    @repo.changes(start_ref, end_ref).each do |file|
      @files << file
    end
  else
    @files = @repo.files
  end
end

Public Instance Methods

cookbooks() click to toggle source
# File lib/between_meals/changeset.rb, line 55
def cookbooks
  BetweenMeals::Changes::Cookbook.find(
    @files, @cookbook_dirs, @logger, @repo, @track_symlinks
  )
end
databags() click to toggle source
# File lib/between_meals/changeset.rb, line 65
def databags
  BetweenMeals::Changes::Databag.find(@files, @databag_dir, @logger)
end
roles() click to toggle source
# File lib/between_meals/changeset.rb, line 61
def roles
  BetweenMeals::Changes::Role.find(@files, @role_dir, @logger)
end