Sha256: 8d35b86756aa6b89bb1e2d92dc5175de8a7c590aa3ecb39bbcf3db547be46b87

Contents?: true

Size: 690 Bytes

Versions: 3

Compression:

Stored size: 690 Bytes

Contents

require_relative 'data/coercer'
require_relative 'helpers/range'

module Estratto
  class Register
    attr_reader :line, :register_layout

    def initialize(line, register_layout)
      @line = line
      @register_layout = register_layout
    end

    def refine
      register_layout.map do |layout|
        {
          layout['name'].to_sym => coerced_data(layout['range'], layout['type'], layout['formats'])
        }
      end.inject(&:merge)
    end

    private

    def coerced_data(range, type, formats)
      Estratto::Data::Coercer.new(
        data: line[Estratto::Helpers::Range.for(range)],
        type: type,
        formats: formats || {}
      ).build
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
estratto-1.0.2 lib/estratto/register.rb
estratto-1.0.1 lib/estratto/register.rb
estratto-1.0.0 lib/estratto/register.rb