Class: MigrationSignature::Config
- Inherits:
-
Object
- Object
- MigrationSignature::Config
- Defined in:
- lib/migration_signature/config.rb
Constant Summary collapse
- DEFAULTS =
{ 'ignore' => [], 'rails_dir' => Dir.pwd, 'migration_dir' => 'db/migrate' }.freeze
- CONFIG_FILE_PATH =
"#{Dir.pwd}/.migration_signature.yml"
Class Method Summary collapse
Instance Method Summary collapse
- #all_runnable_files ⇒ Object
- #ignore?(file) ⇒ Boolean
-
#initialize(opts = DEFAULTS) ⇒ Config
constructor
A new instance of Config.
- #migration_dir ⇒ Object
Constructor Details
Class Method Details
.load ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/migration_signature/config.rb', line 13 def self.load return new(DEFAULTS) unless File.exist?(CONFIG_FILE_PATH) require 'yaml' hash = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("4.0.0") YAML.safe_load(File.read(CONFIG_FILE_PATH), permitted_classes: [Regexp]) else YAML.safe_load(File.read(CONFIG_FILE_PATH), [Regexp]) end || {} new(DEFAULTS.merge(hash)) end |
Instance Method Details
#all_runnable_files ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/migration_signature/config.rb', line 30 def all_runnable_files @all_runnable_files ||= begin require 'pathname' Dir["#{migration_dir}/*"].sort.reject do |f| ignore?(f) end end end |
#ignore?(file) ⇒ Boolean
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/migration_signature/config.rb', line 44 def ignore?(file) rails_root_file = Pathname.new(file).relative_path_from(@opts['rails_dir']).to_s return true if string_ignores.include?(file) return true if string_ignores.include?(rails_root_file) return true if regexp_ignores.any? { |ignore| ignore =~ file } return true if regexp_ignores.any? { |ignore| ignore =~ rails_root_file } false end |
#migration_dir ⇒ Object
40 41 42 |
# File 'lib/migration_signature/config.rb', line 40 def migration_dir "#{@opts['rails_dir']}/#{@opts['migration_dir']}" end |