Module: Netfira::WebConnect::Models
- Defined in:
- lib/netfira/web_connect/models.rb
Defined Under Namespace
Classes: Image, Order, OrderLine, Session, Setting, Shop, Table
Class Method Summary
collapse
Class Method Details
.l10n_table_name?(name) ⇒ Boolean
58
59
60
61
62
|
# File 'lib/netfira/web_connect/models.rb', line 58
def self.l10n_table_name?(name)
@l10n_suffix ||= Netfira::WebConnect.db_table_l10n_suffix.to_s
@l10n_suffix_range ||= (-@l10n_suffix.length)..-1
@l10n_suffix == name[@l10n_suffix_range]
end
|
.l10n_table_owner_name(name) ⇒ Object
64
65
66
|
# File 'lib/netfira/web_connect/models.rb', line 64
def self.l10n_table_owner_name(name)
name[@l10n_table_name_range ||= 0..(-@l10n_suffix.length - 1)] if l10n_table_name? name
end
|
.materialize ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/netfira/web_connect/models.rb', line 6
def self.materialize
Models.constants.each do |name|
klass = Models.const_get(name)
Models.__send__ :remove_const, name if klass < Model::Record || klass < Model::Relation
end
Dir[File.expand_path('../models/*.rb', __FILE__)].each { |p| load p }
table_names = []
tables_to_localize = []
tables_to_relate = []
Model.connection.tables.reject{|x| x == Netfira::WebConnect.schema_migrations_table_name }.each do |table_name|
unprefixed_table_name = unprefix_table_name(table_name)
if unprefixed_table_name.nil? or unprefixed_table_name[0] == '_'
next
elsif l10n_table_name? table_name
tables_to_localize << l10n_table_owner_name(unprefixed_table_name)
elsif unprefixed_table_name =~ /\A(.+)_to_(.+)\z/
tables_to_relate << [$1, $2]
else
table_names << unprefixed_table_name
end
end
table_props = Models::Table.all.map{ |model| [model.name, model] }.to_h
table_names.each do |name|
props = table_props[name]
next unless props
Model::Record.materialize name.camelize.singularize,
tables_to_localize.include?(name),
props
end
tables_to_relate.each do |names|
Model::Relation.materialize *names.map{ |x| x.camelize.singularize }
end
end
|
.unprefix_table_name(name) ⇒ Object
52
53
54
55
56
|
# File 'lib/netfira/web_connect/models.rb', line 52
def self.unprefix_table_name(name)
return unless name.starts_with? Netfira::WebConnect.db_table_prefix.to_s
@prefix_range ||= (Netfira::WebConnect.db_table_prefix.length)..-1
name[@prefix_range]
end
|