class Netfira::WebConnect::Model::Record
noinspection RubyStringKeysInHashInspection
Public Class Methods
find_by_origin_id(shop, id)
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 56 def find_by_origin_id(shop, id) id = id.b if OctaWord === id with_deleted.find_by origin_key => id, shop_id: shop.id end
find_or_create_by_origin_id(shop, id)
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 67 def find_or_create_by_origin_id(shop, id) record = find_or_initialize_by_origin_id(shop, id) record.save unless record.persisted? record end
find_or_initialize_by_origin_id(shop, id)
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 61 def find_or_initialize_by_origin_id(shop, id) id = Guid.from_base64(id).b if origin_key == :guid find_by_origin_id(shop, id).tap { |record| record.restore! if record && record.destroyed? } or new(origin_key => id, shop_id: shop.id) end
has_file?()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 73 def has_file? @has_file ||= self < FileRecord end
has_languages?()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 36 def has_languages? const_defined? :Translation, false end
origin_key()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 44 def origin_key @origin_key ||= writable? ? :guid : (table_props.origin_key || "#{single_name}_id").to_sym end
schema()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 77 def schema @schema ||= Netfira::WebConnect.schema[self] end
sendable()
click to toggle source
Calls superclass method
# File lib/netfira/web_connect/model/record.rb, line 19 def sendable return super unless self == Model::Record # This should raise an error! @sendable_classes ||= Models.constants.map do |name| Models.const_get name end.select do |klass| Class === klass && klass < Model::Record && klass.sendable? end end
sendable?()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 52 def sendable? @sendable ||= table_props.sendable end
table_name()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 28 def table_name @table_name ||= if self == Model::Record Models::Table.table_name else Netfira::WebConnect.db_table_prefix(plural_name).to_s end end
tree?()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 40 def tree? @is_tree ||= attribute_names.include? 'parent_id' end
writable?()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 48 def writable? @writable ||= table_props.writable end
Private Class Methods
table_props()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 133 def self.table_props @table_props end
Public Instance Methods
as_readonly() { || ... }
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 96 def as_readonly readonly! yield instance_variable_set :@readonly, false self end
as_readwrite() { || ... }
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 103 def as_readwrite instance_variable_set :@readonly, false yield readonly! self end
origin_id()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 92 def origin_id __send__ origin_key end
reload()
click to toggle source
Calls superclass method
# File lib/netfira/web_connect/model/record.rb, line 110 def reload clear_translations if has_languages? super end
write_with_type_casting(key, value)
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 115 def write_with_type_casting(key, value) schema = self.class.schema if schema.localize.include? key set_translated_string key, value elsif key == :parent_id value = value.to_s write_attribute key, value.empty? ? nil : value else type = schema.columns[key] return false unless type value = value.to_s if type == 'string' write_attribute key, value end true end
Private Instance Methods
after_add_relation(model)
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 141 def after_add_relation(model) model.shop_id = shop_id end
init()
click to toggle source
# File lib/netfira/web_connect/model/record.rb, line 137 def init self.shop_id ||= 0 end