Sha256: ff5867a1b9f99de012016f3183123a96e702c14be1c5cd594ce30620a489fa3d
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module ContentsCore class Item < ApplicationRecord # field :data, type: String # embedded_in :cc_blocks belongs_to :block def as_json super( {only: [:id, :name, :type], methods: [:data]} ) end def attr_id "#{self.class_name}-#{self.id}" end def class_name self.class.to_s.split('::').last end def editable ContentsCore.editing ? " data-ec-item=\"#{self.id}\" data-ec-input=\"#{self.opt_input}\" data-ec-type=\"#{self.class_name}\"".html_safe : '' end def opt_input if self.block.options[self.name] && self.block.options[self.name]['input'] self.block.options[self.name]['input'].to_s elsif config[:input] config[:input].to_s else '' end end def set( value ) self.data = value self end def to_s self.data end def update_data( value ) self.data = value self.save end def self.item_types @@item_types ||= ContentsCore.config[:items].keys.map &:to_s end def self.permitted_attributes [ :data_boolean, :data_datetime, :data_file, :data_float, :data_hash, :data_integer, :data_string, :data_text ] end protected def config @config ||= self.block.config[:options] && self.block.config[:options][self.name.to_sym] ? self.block.config[:options][self.name.to_sym] : ( ContentsCore.config[:items][self.class::type_name.to_sym] ? ContentsCore.config[:items][self.class::type_name.to_sym] : {} ) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
contents_core-0.2.2 | app/models/contents_core/item.rb |