Sha256: 606834f9502c93e8c3fd8196e493a6c8496889d5ce09ed1e97a64fd745aa39f1

Contents?: true

Size: 450 Bytes

Versions: 1

Compression:

Stored size: 450 Bytes

Contents

module BanksApi
  class InspectableBuilder < Module
    def initialize(accessors)
      define_inspect(accessors)
      freeze
    end

    private

      def define_inspect(accessors)
        define_method(:inspect) do
          attributes_string = accessors.map do |accessor|
            "  #{accessor}: #{send(accessor).inspect}"
          end.join(",\n")

          "#<#{self.class.name}\n#{attributes_string}\n>"
        end
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
banks_api-0.1.5 lib/banks_api/inspectable_builder.rb