active_content 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/active_content/models/profile.rb +41 -2
- data/lib/active_content/profileable.rb +6 -1
- data/lib/active_content/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 69e6ab100952a697d93027b3085740b05123598010faa3ca3a24528292ecc879
|
4
|
+
data.tar.gz: fe9d1068cafd56ae2e212110d15cbbfefe8b559e09f69bfc52d3b614b4ebd5fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 240307abe84eab9d13e0d84e19025f5ddfe038e3f0c852cc1a6d0939249fbf3004b3a3544e0e218a1c9a45da682fe8ef406571e9310dc6bcac4d71b46af9f255
|
7
|
+
data.tar.gz: 843821d493f12f804721e72f1962c6ee06dfa094c315acf8ecf6c3526f6a5e01cbab720d9b011ece5eca12a4f0cbf8f19a18f1286583b17f48e09cb366e6e89c
|
@@ -1,12 +1,51 @@
|
|
1
1
|
class ActiveContent::Profile < ActiveRecord::Base
|
2
|
+
# Define class attributes
|
3
|
+
class_attribute :image_uploaders
|
4
|
+
|
2
5
|
# Set table name
|
3
6
|
self.table_name = 'profiles'
|
4
7
|
|
5
8
|
# Belongs associations
|
6
9
|
belongs_to :profileable, polymorphic: true, optional: true
|
7
10
|
|
8
|
-
#
|
9
|
-
|
11
|
+
# Pick correct uploader after initialize for profileable class
|
12
|
+
after_initialize do
|
13
|
+
class_name = :"#{profileable.class.name.underscore}_image"
|
14
|
+
base_class = :"#{profileable.class.base_class.name.underscore}_image"
|
15
|
+
|
16
|
+
self.class.uploaders[:image] = begin
|
17
|
+
self.class.image_uploaders[class_name] ||
|
18
|
+
self.class.image_uploaders[base_class] ||
|
19
|
+
self.class.image_uploaders[:image]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Build new image uploader class
|
24
|
+
def self.build_image_uploader(assoc_name, uploader_class)
|
25
|
+
if uploader_class
|
26
|
+
uploader = Class.new(uploader_class)
|
27
|
+
const_set("#{assoc_name}#{uploader_class}", uploader)
|
28
|
+
|
29
|
+
uploader.class_eval do
|
30
|
+
alias :original_model :model
|
31
|
+
|
32
|
+
def model
|
33
|
+
original_model.profileable
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
uploader
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Add uploader for a profilable class
|
42
|
+
def self.add_image_uploader(assoc_name, uploader)
|
43
|
+
self.image_uploaders ||= {}
|
44
|
+
self.mount_uploader :image, build_image_uploader(assoc_name, uploader)
|
45
|
+
|
46
|
+
class_name = uploader ? :"#{assoc_name.underscore}_image" : :image
|
47
|
+
self.image_uploaders[class_name] = self.uploaders[:image]
|
48
|
+
end
|
10
49
|
|
11
50
|
# Name composed by first and last name
|
12
51
|
def name
|
@@ -6,9 +6,14 @@ module ActiveContent
|
|
6
6
|
def has_profile(options={})
|
7
7
|
include ActiveDelegate
|
8
8
|
|
9
|
-
|
9
|
+
assoc_class = options.delete(:class_name) || 'ActiveContent::Profile'
|
10
|
+
image_uploader = options.delete(:uploader)
|
11
|
+
|
12
|
+
has_one :profile, as: :profileable, class_name: assoc_class, autosave: true, dependent: :destroy
|
10
13
|
delegate_attributes options.except(:to).merge(to: :profile, allow_nil: true)
|
11
14
|
|
15
|
+
ActiveContent::Profile.add_image_uploader name, image_uploader
|
16
|
+
|
12
17
|
before_save do
|
13
18
|
prof_foreign = self.class.profiles_attribute_names.map(&:to_s)
|
14
19
|
prof_current = prof_foreign.map { |n| send(n) }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_content
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Olibia Tsati
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
version: '0'
|
185
185
|
requirements: []
|
186
186
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.7.7
|
188
188
|
signing_key:
|
189
189
|
specification_version: 4
|
190
190
|
summary: STI ActiveRecord models for dynamic CMS models
|