Sha256: 77bf6558c10bd4875e8764bad926f02fab18138aed144e7dcead44f36676a9f1
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
module Plutonium module Core module Fields module Inputs class Base attr_reader :name, :user_options def initialize(name, **user_options) @name = name @user_options = user_options end def render(f, record, **) raise NotImplementedError, "#{self.class}#render" end def collect(params) # Handles multi parameter attributes # https://www.cookieshq.co.uk/posts/rails-spelunking-date-select # https://www.cookieshq.co.uk/posts/multiparameter-attributes # Matches # - parameter # - parameter(1) # - parameter(2) # - parameter(1i) # - parameter(2f) regex = /^#{param}(\(\d+[if]?\))?$/ keys = params.select { |key, value| regex.match?(key) }.keys params.slice(*keys) end protected def input_options = {} def param = name def options = @options ||= input_options.deep_merge(@user_options) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
plutonium-0.8.0 | lib/plutonium/core/fields/inputs/base.rb |