Sha256: f401bbc762f765161d413ba87aa0712dc57834beb302708456ee9c7c2c9f6c3d
Contents?: true
Size: 514 Bytes
Versions: 1
Compression:
Stored size: 514 Bytes
Contents
# def foo opts = {} # @opts = StructOpts opts, foo: 123, bar: nil # ... module StructOpts OPTS ||= {} def self.call vars, opts name = '%sStructOpts' % self.class struct = StructOpts::OPTS[name] ||= Struct.new name, *opts.keys ivars = struct.new vars.each do |k, v| ivars.send '%s=' % k, v end opts.each do |k, v| if vars[k].empty? ivars.send '%s=' % k, v end end ivars end end def StructOpts vars, opts StructOpts.call vars, opts end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lux-fw-0.6.2 | ./lib/common/struct_opts.rb |