def initialize_from_ordered_args(values)
      raise ArgumentError, "wrong number of arguments(#{values.size} for #{self.class.members.size})" if values.size > self.class.members.size

      values.each_with_index do |v, i|
        # instance_variable_set("@#{self.class.members[i]}", v)
        self.public_send("#{self.class.members[i]}=", v)
      end
    end
def initialize_from_ordered_args(values)
      raise ArgumentError, "wrong number of arguments(#{values.size} for #{self.class.members.size})" if values.size > self.class.members.size

      values.each_with_index do |v, i|
        # instance_variable_set("@#{self.class.members[i]}", v)
        self.public_send("#{self.class.members[i]}=", v)
      end
    end
Entity constructor from ordered params

 @param [Array] values ordered values

 @example
   class Person
     include StronglyTyped::Model

     attribute :id, Integer
     attribute :slug, String
   end

   Person.new(1, 'elgalu')
   #=> #<Person:0x00c99 @id=1, @slug="elgalu">
   leo.id   #=> 1
   leo.slug #=> "elgalu"

 @raise [ArgumentError] if the arity doesn't match

 @private