Sha256: f6605aeb27de01569707b3134c1b82f990ad4bace9a64efa82586cfc8efe9a42
Contents?: true
Size: 853 Bytes
Versions: 2
Compression:
Stored size: 853 Bytes
Contents
require "inflecto" module Formalist class Element class PermittedChildren All = Class.new do def permitted?(*) true end end.new None = Class.new do def permitted?(*) false end end.new class Some attr_reader :permitted_children def initialize(children) @permitted_children = children end def permitted?(child) permitted_children.any? { |permitted_child| permitted_child_class = Elements.const_get(Inflecto.camelize(permitted_child)) child.ancestors.include?(permitted_child_class) } end end def self.all All end def self.none None end def self.[](children) Some.new(children) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
formalist-0.3.0 | lib/formalist/element/permitted_children.rb |
formalist-0.2.3 | lib/formalist/element/permitted_children.rb |