Sha256: f88b8bd9e7c84b01fcb58f4d266cdb6d6ad7291f5489c78522659af23494f59c
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true module Arstotzka # As Arstotzka extends ActiveSupport::Concern, Arstotzka::ClassMethods define # methods that will be available when defining a class that includes Arstotka module ClassMethods # expose a field from the json/hash as a method # # @example # class MyModel # include Arstotzka # # attr_reader :json # # expose :first_name, full_path: 'name.first' # expose :age, 'cars', type: :integer # # def initialize(json) # @json = json # end # end # # instance = MyModel.new( # 'name' => { first: 'John', last: 'Williams' }, # :age => '20', # 'cars' => 2.0 # ) # # instance.first_name # returns 'John' # instance.age # returns 20 # instance.cars # returns 2 # # @see Builder Arstotzka::Builder # @see # https://www.rubydoc.info/gems/activesupport/5.0.0.1/ActiveSupport/Concern # ActiveSupport::Concern def expose(*attr_names, **options) Builder.new(attr_names, self, options).build end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
arstotzka-1.0.2 | lib/arstotzka/class_methods.rb |