Sha256: 43907b1644ba9ca6db050c83ee76e912bd92e16f72ccfcbf68608026f4ed191e
Contents?: true
Size: 459 Bytes
Versions: 8
Compression:
Stored size: 459 Bytes
Contents
class HeadMusic::Consonance LEVELS = %w[perfect imperfect dissonant] def self.get(name) @consonances ||= {} @consonances[name.to_sym] ||= new(name) if LEVELS.include?(name.to_s) end singleton_class.send(:alias_method, :[], :get) attr_reader :name delegate :to_s, to: :name def initialize(name) @name = name.to_s.to_sym end LEVELS.each do |method_name| define_method(:"#{method_name}?") { to_s == method_name } end end
Version data entries
8 entries across 8 versions & 1 rubygems