class CheckPlease::Flags
NOTE: this gets all of its attributes defined (via .define) in ../check_please.rb
Constants
- BY_NAME
Public Class Methods
[](name)
click to toggle source
# File lib/check_please/flags.rb, line 11 def self.[](name) BY_NAME[name.to_sym] end
define(name, &block)
click to toggle source
# File lib/check_please/flags.rb, line 15 def self.define(name, &block) flag = Flag.new(name: name.to_sym, &block) BY_NAME[flag.name] = flag define_accessors flag nil end
define_accessors(flag)
click to toggle source
# File lib/check_please/flags.rb, line 29 def self.define_accessors(flag) getter = flag.name define_method(getter) { @attributes.fetch(flag.name) { flag.default } } setter = :"#{flag.name}=" define_method(setter) { |value| flag.send :__set__, value, on: @attributes, flags: self } end
each_flag() { |flag| ... }
click to toggle source
# File lib/check_please/flags.rb, line 23 def self.each_flag BY_NAME.each do |_, flag| yield flag end end
new(attrs = {})
click to toggle source
# File lib/check_please/flags.rb, line 41 def initialize(attrs = {}) @attributes = {} attrs.each do |name, value| send "#{name}=", value end end