Class: Exo::Resource::Item
- Inherits:
-
Object
- Object
- Exo::Resource::Item
show all
- Includes:
- Document
- Defined in:
- app/models/exo/resource/item.rb,
app/models/exo/resource/item/list_value.rb,
app/models/exo/resource/item/asset_value.rb,
app/models/exo/resource/item/simple_value.rb,
app/models/exo/resource/item/has_many_value.rb,
app/models/exo/resource/item/markdown_value.rb,
app/models/exo/resource/item/belongs_to_value.rb,
app/models/exo/resource/item/abstract_relation.rb
Defined Under Namespace
Classes: AbstractRelation, AbstractValue, AssetValue, BelongsToValue, HasManyValue, ListValue, MarkdownValue, SimpleValue
Instance Method Summary
collapse
Instance Method Details
121
122
123
|
# File 'app/models/exo/resource/item.rb', line 121
def meta_errors
@meta_errors ||= Exo::Resource::MetaErrors.new
end
|
#migrate_values! ⇒ Object
27
28
29
30
31
32
|
# File 'app/models/exo/resource/item.rb', line 27
def migrate_values!
self._values = values
self.save!
self[:values] = nil
self.save!
end
|
#published ⇒ Object
Also known as:
published?
73
74
75
|
# File 'app/models/exo/resource/item.rb', line 73
def published
published_at && published_at <= DateTime.now
end
|
#published=(boolean) ⇒ Object
63
64
65
66
67
68
69
70
71
|
# File 'app/models/exo/resource/item.rb', line 63
def published= boolean
boolean = boolean == 1 if boolean.kind_of?(Fixnum)
boolean = boolean == "1" if boolean.kind_of?(String)
if boolean
self.published_at = DateTime.now unless published_at
else
self.published_at = nil
end
end
|
#resource ⇒ Object
116
117
118
119
|
# File 'app/models/exo/resource/item.rb', line 116
def resource
site.resources.where(slug_id: self.resource_slug_id).first
end
|
#resource! ⇒ Object
107
108
109
110
|
# File 'app/models/exo/resource/item.rb', line 107
def resource!
site.resources.find_by slug_id: self.resource_slug_id
end
|
#resource=(r) ⇒ Object
112
113
114
|
# File 'app/models/exo/resource/item.rb', line 112
def resource= r
self.resource_slug_id = r.slug_id
end
|
#scheduled ⇒ Object
77
78
79
|
# File 'app/models/exo/resource/item.rb', line 77
def scheduled
published_at && published_at > DateTime.now
end
|
#set_asset(field_slug, value) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'app/models/exo/resource/item.rb', line 41
def set_asset field_slug, value
puts "set asset #{field_slug} #{value}"
if value == nil
puts "empty"
nil
elsif !value
puts "remove"
assets.where(slug_id: field_slug).destroy_all
nil
else
puts "push !"
asset = assets.where(field_slug_id: field_slug).first || Exo::Resource::ItemAsset.new
asset.field_slug_id = field_slug unless asset.field_slug_id
asset.item = self unless asset.item
asset.content = value
asset.save
puts "asset #{asset.inspect}"
temp_asset[field_slug] = asset
asset
end
end
|
#site ⇒ Object
99
100
101
|
# File 'app/models/exo/resource/item.rb', line 99
def site
Exo::Site.find_by slug_id: site_slug_id
end
|
#site=(site) ⇒ Object
95
96
97
|
# File 'app/models/exo/resource/item.rb', line 95
def site= site
self.site_slug_id = site.slug_id
end
|
#slugify(value) ⇒ Object
34
35
36
37
38
39
|
# File 'app/models/exo/resource/item.rb', line 34
def slugify value
_slug = value.downcase.gsub /([^a-z0-9])+/i, '-'
_slug = _slug[1..-1] if _slug[0] == '-'
_slug = _slug[0..-2] if _slug[-1] == '-'
_slug
end
|
#temp_asset_for(meta_field) ⇒ Object
103
104
105
|
# File 'app/models/exo/resource/item.rb', line 103
def temp_asset_for meta_field
temp_asset[meta_field.slug_id]
end
|
#value_for(meta_field) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
|
# File 'app/models/exo/resource/item.rb', line 83
def value_for meta_field
meta_field = meta_field.slug_id if meta_field.kind_of?(Exo::Resource::MetaField)
self.values.where(field_slug_id: meta_field.to_s).first
end
|