Sha256: 018bf232988b16f8e836cfe9c34e10c3ff609fcf10b145f04af56af146cd9d17
Contents?: true
Size: 598 Bytes
Versions: 4
Compression:
Stored size: 598 Bytes
Contents
# frozen_string_literal: true require_relative "selector_not_found_exception" module Anony class Selectors def initialize(model_class, &block) @model_class = model_class @selectors = {} instance_exec(&block) if block end attr_reader :selectors def for_subject(subject, &block) selectors[subject] = block end def select(subject, subject_id) selector = selectors[subject] raise SelectorNotFoundException.new(subject.to_s, @model_class.name) if selector.nil? @model_class.instance_exec(subject_id, &selector) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
anony-1.6.0 | lib/anony/selectors.rb |
anony-1.5.0 | lib/anony/selectors.rb |
anony-1.4.0 | lib/anony/selectors.rb |
anony-1.2.0 | lib/anony/selectors.rb |