Adding Structures - envato/guide GitHub Wiki

# app/documentation/guide/content/structures/account/sign_in_modal.rb

class Guide::Content::Structures::Account::SignInModal < Guide::Structure
  def partial
    'sso/sign_in/modal'
  end

  def layout_css_classes
    {
      :parent => 'js',
      :scenario => '-layout-modal'
    }
  end

  private

  def view_model(options = {})
    Guide::ViewModel.new(
      {
        :form => Guide::FormObject.new,
        :user_action => :checkout,
      }, options
    )
  end

  # Scenarios

  scenario :user_clicks_sign_in do
    view_model(
      :user_action => :direct
    )
  end

  scenario :user_wants_to_checkout do
    view_model(
      :user_action => :checkout
    )
  end
end