Sha256: 732f5d20c0d9b6a717f452865aae568e751dd3ad663ffe3c0c86206c9c32a358

Contents?: true

Size: 672 Bytes

Versions: 5

Compression:

Stored size: 672 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

5 entries across 5 versions & 3 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/representable-3.2.0/test/reader_writer_test.rb
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/representable-3.2.0/test/reader_writer_test.rb
representable-3.2.0 test/reader_writer_test.rb
representable-3.1.1 test/reader_writer_test.rb
representable-3.1.0 test/reader_writer_test.rb