class FlashFlow::Data::Store
Public Class Methods
new(filename, git, opts={})
click to toggle source
# File lib/flash_flow/data/store.rb, line 7 def initialize(filename, git, opts={}) @filename = filename @git = git @logger = opts[:logger] || Logger.new('/dev/null') end
Public Instance Methods
get()
click to toggle source
# File lib/flash_flow/data/store.rb, line 13 def get file_contents = @git.read_file_from_merge_branch(@filename) JSON.parse(file_contents) rescue JSON::ParserError, Errno::ENOENT @logger.error "Unable to read branch info from file: #{@filename}" {} end
write(branches, file=nil)
click to toggle source
# File lib/flash_flow/data/store.rb, line 22 def write(branches, file=nil) @git.in_dir do file ||= File.open(@filename, 'w') file.puts JSON.pretty_generate(sort_branches(branches)) file.close end @git.in_temp_merge_branch do @git.add_and_commit(@filename, 'Branch Info', add: {force: true}) end end
Private Instance Methods
sort_branches(branches)
click to toggle source
# File lib/flash_flow/data/store.rb, line 36 def sort_branches(branches) return branches unless branches.is_a?(Hash) sorted_branches = {} branches.keys.sort.each { |key| sorted_branches[key] = sort_branches(branches[key]) } sorted_branches end