Migrating from 2.x to 3.0

Core/VueJs repo and gem split

  • matestack-ui-core previously contained logic for

    • Ruby -> HTML conversion

    • Reactivity via prebuilt and custom Vue.js components

  • in order to have better seperation of concerns, we've moved the reactivity related things to its own repository/gem -> matestack-ui-vuejs

  • matestack-ui-core is now meant to be combined with any reactivity framework or none at all

Installation

Add the latest version to your Gemfile

gem 'matestack-ui-core', '~> 3.0.0.rc2'

and run

$ bundle update matestack-ui-core

Remove matestack-ui-core JavaScript package

  • matestack-ui-core does not ship a JavaScript package anymore

  • please remove the package from your application and switch to matestack-ui-vuejs for the VueJs driven reactivity if required

Matestack::Ui::App is now called Matestack::Ui::Layout

  • Matestack::Ui::App was always meant to be a layout wrapping pages, but was supercharged with some vuejs logic before splitting the core and vuejs repos

  • now Matestack::Ui::App is only a layout, that's why it should be named like that: Matestack::Ui::Layout

-> Search&Replace

matestack_app method is renamed to matestack_layout

  • following the above mentioned naming adjustment, the matestack_app method used on controller level is renamed to matestack_layout

app/controllers/demo_controller.rb

-> Search&Replace

Matestack::Ui::Layout Matestack::Ui::Page wrapping DOM structures

  • previously, Matestack::Ui::App added some wrapping DOM structure around the whole layout and around it's yield

  • this enabled dynamic page transition and loading state animations

  • Matestack::Ui::Layout now purely renders the layout and yields a page without anything in between

  • the wrapping DOM structres required for dynamic page transitions and loading state animations needs to be added via two new components if you want to use these features via matestack-ui-vue_js (see section below!)

matestack/some/app/layout.rb

matestack/some/app/pages/some_page.rb

will just render:

-> Adjust CSS if you have created any rules targeting the wrapping DOM structure which now only is applied when using components from matestack-ui-vuejs explicitly

Last updated

Was this helpful?