Module: Neo

Defined in:
lib/neo/rails/mock.rb,
lib/neo/rails.rb,
lib/neo/rails/engine.rb,
lib/neo/rails/version.rb,
lib/neo/rails/exposure.rb,
lib/neo/rails/presenter.rb,
lib/neo/rails/scenarios.rb,
lib/neo/rails/exposure/errors.rb,
lib/neo/rails/exposure/exposures.rb,
lib/neo/rails/presenter/test_helper.rb,
lib/neo/rails/scenarios/test_helper.rb,
lib/neo/rails/scenarios/rails_helper.rb

Overview

A Mock can fake an object.

This is useful when frontend developers want to fill a page with mock data. Mocks can pre-define interface for real data.

Usage

app/mocks/user_mock.rb:

class UserMock < Neo::Rails::Mock
  def age
    mock.tagged?(:old) ? 78 : 23
  end

  def name
    "Uncle bob"
  end

  def logged_in?
    true
  end

  def sexy?
    mock.tagged?(:sexy)
  end

  def car
    mock.option(:car)
  end
end

Further…

old_man = UserMock.new(:old)
old_man.age   # => 78
old_man.name  # => "Uncle Bob"
old_man.car   # => nil

old_sexbomb = UserMock.new(:old, :sexy, :car => CarMock.new(:porsche))
old_sexbomb.age   # => 78
old_sexbomb.sexy? # => true
old_sexbomb.car   # => CarMock

Defined Under Namespace

Modules: Rails