Sha256: 9130bbf6f968c672e5363acbbc517378331bb2ee958b1bbea017a1a6c3d57563
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
# frozen_string_literal: true require 'spec_helper' require 'windcharger/hash_transformer' describe Windcharger::HashTransformer do describe "#transform" do it "returns a hash with attribute names as keys and their method results as values" do transformer_class = Class.new do extend Windcharger::Attributes include Windcharger::HashTransformer attribute def foo; 42; end attribute def bar; 'colorless green ideas'; end def baz; end end transformer = transformer_class.new expect(transformer.transform).to eq({ foo: 42, bar: 'colorless green ideas', }) end it "does not call private methods" do transformer_class = Class.new do extend Windcharger::Attributes include Windcharger::HashTransformer private attribute def foo; 42; end end transformer = transformer_class.new expect { transformer.transform }.to raise_error NoMethodError, /private/ end it "calls overridden transform via to_h" do transformer_class = Class.new do extend Windcharger::Attributes include Windcharger::HashTransformer def transform; :foo; end end transformer = transformer_class.new expect(transformer.to_h).to eq :foo end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
windcharger-0.7.0 | spec/windcharger/hash_transformer_spec.rb |
windcharger-0.6.0 | spec/windcharger/hash_transformer_spec.rb |
windcharger-0.5.0 | spec/windcharger/hash_transformer_spec.rb |