module BuilderSupport
Constants
- VERSION
Public Class Methods
builder_support(rmv: [ ], add: [ ])
click to toggle source
# File lib/builder_support.rb, line 6 def self.builder_support rmv: [ ], add: [ ] extend ClassMethods delegate :show_attrs, :flatten_attrs, to: self include InstanceMethods builder_rmv *rmv # %i[ a, b, c d ] # %i[ flatten: a b, other_declare: c d ] # 'a b and c' # 'flatten: a and b, other_declare: c and d' add = add.split(/ and | /) if add.is_a? String add.map { |item| item[','] ? [item.to_s.delete(','), ','] : item } .flatten.map(&:to_sym).split(:',').each do |attrs| builder_add *attrs end end
included(base)
click to toggle source
# File lib/builder_support.rb, line 4 def self.included(base) base.class_eval do def self.builder_support rmv: [ ], add: [ ] extend ClassMethods delegate :show_attrs, :flatten_attrs, to: self include InstanceMethods builder_rmv *rmv # %i[ a, b, c d ] # %i[ flatten: a b, other_declare: c d ] # 'a b and c' # 'flatten: a and b, other_declare: c and d' add = add.split(/ and | /) if add.is_a? String add.map { |item| item[','] ? [item.to_s.delete(','), ','] : item } .flatten.map(&:to_sym).split(:',').each do |attrs| builder_add *attrs end end end end