Sha256: 4b58f44300e997f64152b79c9fd11c66d838966f771519fba4b26b990a343357

Contents?: true

Size: 990 Bytes

Versions: 2

Compression:

Stored size: 990 Bytes

Contents

module MagicLamp
  class FixturesController < MagicLamp::ApplicationController
    ERRORS = [
      MagicLamp::ArgumentError,
      MagicLamp::AlreadyRegisteredFixtureError,
      MagicLamp::AmbiguousFixtureNameError,
      MagicLamp::UnregisteredFixtureError,
      MagicLamp::AttemptedRedirectError,
      MagicLamp::DoubleRenderError
    ].map(&:name)

    RENDER_TYPE = Rails::VERSION::MAJOR == 5 ? :plain : :text

    rescue_from(*ERRORS) do |exception, message = exception.message|
      error_message_with_bactrace = parse_error(exception, message)
      logger.error(error_message_with_bactrace)
      render RENDER_TYPE => message, status: 400
    end

    def show
      MagicLamp.load_lamp_files
      render RENDER_TYPE => MagicLamp.generate_fixture(params[:name])
    end

    def index
      render json: MagicLamp.generate_all_fixtures
    end

    private

    def parse_error(exception, message)
      ([message] + exception.backtrace).join("\n\s\s\s\s")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
magic_lamp-1.8.1 app/controllers/magic_lamp/fixtures_controller.rb
magic_lamp-1.8.0 app/controllers/magic_lamp/fixtures_controller.rb