Class: SchemaDev::Config
- Inherits:
-
Object
- Object
- SchemaDev::Config
- Defined in:
- lib/schema_dev/config.rb
Defined Under Namespace
Classes: Tuple
Instance Attribute Summary collapse
-
#quick ⇒ Object
Returns the value of attribute quick.
Class Method Summary collapse
Instance Method Summary collapse
- #db? ⇒ Boolean
-
#initialize(ruby:, rails:, db: nil, exclude: nil, notify: nil, quick: nil) ⇒ Config
constructor
A new instance of Config.
- #matrix(quick: false, ruby: nil, rails: nil, db: nil) ⇒ Object
Constructor Details
#initialize(ruby:, rails:, db: nil, exclude: nil, notify: nil, quick: nil) ⇒ Config
Returns a new instance of Config.
37 38 39 40 41 42 43 44 |
# File 'lib/schema_dev/config.rb', line 37 def initialize(ruby:, rails:, db: nil, exclude: nil, notify: nil, quick: nil) @ruby = Array.wrap(ruby) @rails = Array.wrap(rails) @db = Array.wrap(db) @exclude = Array.wrap(exclude).map(&:symbolize_keys).map {|tuple| Tuple.new(tuple)} @notify = Array.wrap(notify) @quick = Array.wrap(quick || {ruby: @ruby.last, rails: @rails.last, db: @db.andand.last}) end |
Instance Attribute Details
#quick ⇒ Object
Returns the value of attribute quick.
14 15 16 |
# File 'lib/schema_dev/config.rb', line 14 def quick @quick end |
Class Method Details
.load ⇒ Object
16 17 18 |
# File 'lib/schema_dev/config.rb', line 16 def self.load new (YAML.load Pathname.new(CONFIG_FILE).read).deep_symbolize_keys end |
Instance Method Details
#db? ⇒ Boolean
46 47 48 |
# File 'lib/schema_dev/config.rb', line 46 def db? @db.any? end |
#matrix(quick: false, ruby: nil, rails: nil, db: nil) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/schema_dev/config.rb', line 50 def matrix(quick: false, ruby: nil, rails: nil, db: nil) use_ruby = @ruby use_rails = @rails use_db = @db if quick use_ruby = @quick.map{|q| q[:ruby]} use_rails = @quick.map{|q| q[:rails]} use_db = @quick.map{|q| q[:db]} end use_ruby = Array.wrap(ruby) if ruby use_rails = Array.wrap(rails) if rails use_db = Array.wrap(db) if db @matrix ||= begin m = use_ruby.product(use_rails) m = m.product(use_db).map(&:flatten) if db? m = m.map { |_ruby, _rails, _db| Tuple.new(ruby: _ruby, rails: _rails, db: _db) } m.reject(&it.match_any?(@exclude)).map(&:to_hash) end end |