class PhilColumns::Configuration

Constants

TAG_REGEX

Attributes

_config[R]

Public Class Methods

new( options={} ) click to toggle source
Calls superclass method
# File lib/phil_columns/configuration.rb, line 10
def initialize( options={} )
  @_config = Hashie::Mash.new( read_config_file ).
                          merge( options )

  super( _config )
end

Public Instance Methods

config_filepath() click to toggle source
# File lib/phil_columns/configuration.rb, line 36
def config_filepath
  Pathname.new( '.phil_columns' )
end
down() click to toggle source

Not sure why we need these explicit proxies

# File lib/phil_columns/configuration.rb, line 41
def down;      _config.down;      end
dry_run() click to toggle source
# File lib/phil_columns/configuration.rb, line 42
def dry_run;   _config.dry_run;   end
exclusion_tags() click to toggle source
# File lib/phil_columns/configuration.rb, line 27
def exclusion_tags
  partitioned_tags.first.
                   map { |tag| TAG_REGEX.match( tag )[1] }
end
inclusion_tags() click to toggle source
# File lib/phil_columns/configuration.rb, line 32
def inclusion_tags
  partitioned_tags.last
end
operation() click to toggle source
# File lib/phil_columns/configuration.rb, line 43
def operation; _config.operation; end
partitioned_tags() click to toggle source
# File lib/phil_columns/configuration.rb, line 23
def partitioned_tags
  @partitioned_tags ||= tags.partition { |tag| TAG_REGEX.match( tag ) }
end
save_to_file() click to toggle source
# File lib/phil_columns/configuration.rb, line 58
def save_to_file
  File.open( config_filepath, 'w' ) do |f|
    f.write( YAML::dump( config_as_hash ))
  end
end
slice( *keys ) click to toggle source
# File lib/phil_columns/configuration.rb, line 54
def slice( *keys )
  Hashie::Mash.new( _config.select { |k,v| keys.map( &:to_s ).include?( k.to_s ) } )
end
tags() click to toggle source
# File lib/phil_columns/configuration.rb, line 17
def tags
  (_config[:tags].nil? || _config[:tags].empty?) ?
    _config.default_tags :
    _config.tags
end
version() click to toggle source
# File lib/phil_columns/configuration.rb, line 45
def version
  if _config.down &&
      _config.version == 'all'
    '0'
  else
    _config.version
  end
end

Protected Instance Methods

config_as_hash() click to toggle source
# File lib/phil_columns/configuration.rb, line 73
def config_as_hash
  slice( *keys_to_persist ).to_h
end
keys_to_persist() click to toggle source
# File lib/phil_columns/configuration.rb, line 77
def keys_to_persist
  %w(
    default_tags
    env_files
    schema_load_strategy
    schema_unload_strategy
    seeds_path
    skip_tables_on_purge
  )
end
read_config_file() click to toggle source
# File lib/phil_columns/configuration.rb, line 68
def read_config_file
  return {} unless config_filepath.file?
  YAML::load_file( config_filepath.expand_path )
end