Sha256: 6669bc0a651d733b375ffd687973cc6845db41835f206c25e28e29fbc5095d9c
Contents?: true
Size: 847 Bytes
Versions: 4
Compression:
Stored size: 847 Bytes
Contents
module Xpose module Configuration DEFAULT_VALUES = { name: nil, value: nil, decorate: true, decorator: :infer, infer_value: true, scope: :all }.freeze def self.build(**args) args = DEFAULT_VALUES.merge(args).keep_if do |k, v| DEFAULT_VALUES.has_key?(k) end OpenStruct.new(args).tap do |conf| conf.name = conf.name.to_s conf.method_name = conf.name.to_sym conf.instance_variable_name = :"@#{conf.method_name}" conf.singularized_name = conf.name.singularize conf.pluralized_name = conf.name.pluralize conf.decorated_name = "decorated_#{conf.name}" conf.decorated_method_name = conf.decorated_name.to_sym conf.decorated_instance_variable_name = :"@decorated_#{conf.method_name}" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
xpose-0.1.5 | lib/xpose/configuration.rb |
xpose-0.1.2 | lib/xpose/configuration.rb |
xpose-0.1.1 | lib/xpose/configuration.rb |
xpose-0.1.0 | lib/xpose/configuration.rb |