Class: Spree::Migrations
- Inherits:
-
Object
- Object
- Spree::Migrations
- Defined in:
- lib/spree/migrations.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#engine_name ⇒ Object
readonly
Returns the value of attribute engine_name.
Instance Method Summary collapse
-
#check ⇒ Object
Puts warning when any engine migration is not present on the Rails app db/migrate dir.
-
#initialize(config, engine_name) ⇒ Migrations
constructor
Takes the engine config block and engine name.
Constructor Details
#initialize(config, engine_name) ⇒ Migrations
Takes the engine config block and engine name
6 7 8 |
# File 'lib/spree/migrations.rb', line 6 def initialize(config, engine_name) @config, @engine_name = config, engine_name end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
3 4 5 |
# File 'lib/spree/migrations.rb', line 3 def config @config end |
#engine_name ⇒ Object (readonly)
Returns the value of attribute engine_name.
3 4 5 |
# File 'lib/spree/migrations.rb', line 3 def engine_name @engine_name end |
Instance Method Details
#check ⇒ Object
Puts warning when any engine migration is not present on the Rails app db/migrate dir
First split:
["20131128203548", "update_name_fields_on_spree_credit_cards.spree.rb"]
Second split should give the engine_name of the migration
["update_name_fields_on_spree_credit_cards", "spree.rb"]
Shouldn’t run on test mode because migrations inside engine don’t have engine name on the file name
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/spree/migrations.rb', line 23 def check if File.exists?("config/spree.yml") && File.directory?("db/migrate") engine_in_app = app_migrations.map do |file_name| name, engine = file_name.split(".", 2) next unless match_engine?(engine) name end.compact! || [] missing_migrations = engine_migrations.sort - engine_in_app.sort unless missing_migrations.empty? puts "[#{engine_name.capitalize} WARNING] Missing migrations." missing_migrations.each do |migration| puts "[#{engine_name.capitalize} WARNING] #{migration} from #{engine_name} is missing." end puts "[#{engine_name.capitalize} WARNING] Run `bundle exec rake railties:install:migrations` to get them.\n\n" true end end end |