Sha256: 237df18cea57343d34d03ff0c863c4496b98d047d6ae1d89dd04d999babe3af1
Contents?: true
Size: 979 Bytes
Versions: 1
Compression:
Stored size: 979 Bytes
Contents
# frozen_string_literal: true module Shirinji class Bean attr_reader :name, :class_name, :value, :access, :attributes, :construct # rubocop:disable Metrics/ParameterLists def initialize( name, class_name: nil, value: nil, access:, construct: true, &block ) check_params!(class_name, value) @name = name @class_name = class_name @value = value @access = access @attributes = {} @construct = construct instance_eval(&block) if block end # rubocop:enable Metrics/ParameterLists def attr(name, ref:) attributes[name] = Attribute.new(name, ref) end private def check_params!(class_name, value) msg = if class_name && value 'you can use either `class_name` or `value` but not both' elsif !class_name && !value 'you must pass either `class_name` or `value`' end raise ArgumentError, msg if msg end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shirinji-0.0.4 | lib/shirinji/bean.rb |