Sha256: ea53213758587be14c83c03ea2d524215a2ca5b98181bf1fcd6a662114f86622

Contents?: true

Size: 666 Bytes

Versions: 9

Compression:

Stored size: 666 Bytes

Contents

require 'test_helper'

class ReaderWriterTest < BaseTest
  representer! do
    property :name,
      :writer => lambda { |options| options[:doc]["title"] = "#{options[:user_options][:nr]}) #{options[:input]}" },
      :reader => lambda { |options| self.name = options[:doc]["title"].split(") ").last }
  end

  subject { OpenStruct.new(:name => "Disorder And Disarray").extend(representer) }

  it "uses :writer when rendering" do
    subject.to_hash(user_options: {nr: 14}).must_equal({"title" => "14) Disorder And Disarray"})
  end

  it "uses :reader when parsing" do
    subject.from_hash({"title" => "15) The Wars End"}).name.must_equal "The Wars End"
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
representable-3.0.4 test/reader_writer_test.rb
representable-3.0.3 test/reader_writer_test.rb
representable-3.0.2 test/reader_writer_test.rb
representable-3.0.1 test/reader_writer_test.rb
representable-3.0.0 test/reader_writer_test.rb
representable-2.4.1 test/reader_writer_test.rb
representable-2.4.0 test/reader_writer_test.rb
representable-2.4.0.rc5 test/reader_writer_test.rb
representable-2.4.0.rc4 test/reader_writer_test.rb