Skip to content

Commit b9a23db

Browse files
committed
Bump version to v0.4.6
1 parent bfbf05b commit b9a23db

File tree

2 files changed

+155
-1
lines changed

2 files changed

+155
-1
lines changed

app/models/asset_field_type.rb.orig

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
class AssetFieldType < FieldType
2+
attr_accessor :asset_file_name,
3+
:asset_content_type,
4+
:asset_file_size,
5+
:asset_updated_at,
6+
:asset
7+
8+
attr_reader :dimensions,
9+
:existing_data
10+
11+
before_save :extract_dimensions
12+
13+
do_not_validate_attachment_file_type :asset
14+
validates :asset, attachment_presence: true, if: :validate_presence?
15+
validate :validate_asset_size, if: :validate_size?
16+
validate :validate_asset_content_type, if: :validate_content_type?
17+
18+
def metadata=(metadata_hash)
19+
@metadata = metadata_hash.deep_symbolize_keys
20+
@existing_data = metadata_hash[:existing_data]
21+
Paperclip::HasAttachedFile.define_on(self.class, :asset, existing_metadata)
22+
end
23+
24+
def data=(data_hash)
25+
self.asset = data_hash.deep_symbolize_keys[:asset]
26+
end
27+
28+
def data
29+
{
30+
<<<<<<< HEAD
31+
'asset': {
32+
'file_name': asset_file_name,
33+
'url': asset.url,
34+
'dimensions': dimensions,
35+
'content_type': asset_content_type,
36+
'file_size': asset_file_size,
37+
'updated_at': asset_updated_at
38+
},
39+
'asset_field_type_id': id
40+
=======
41+
'asset': {
42+
'file_name': asset_file_name,
43+
'url': asset.url,
44+
'style_urls': style_urls,
45+
'dimensions': dimensions,
46+
'content_type': asset_content_type,
47+
'file_size': asset_file_size,
48+
'updated_at': asset_updated_at
49+
}
50+
>>>>>>> Implement storage of thumbnail/style URLs, asset wizard info box, and asset thumbnail in index
51+
}
52+
end
53+
54+
def field_item_as_indexed_json_for_field_type(field_item, options = {})
55+
json = {}
56+
json[mapping_field_name] = asset_file_name
57+
json
58+
end
59+
60+
def mapping
61+
{name: mapping_field_name, type: :string, analyzer: :keyword}
62+
end
63+
64+
private
65+
66+
def image?
67+
asset_content_type =~ %r{^(image|(x-)?application)/(bmp|gif|jpeg|jpg|pjpeg|png|x-png)$}
68+
end
69+
70+
def extract_dimensions
71+
return unless image?
72+
tempfile = asset.queued_for_write[:original]
73+
unless tempfile.nil?
74+
geometry = Paperclip::Geometry.from_file(tempfile)
75+
@dimensions = {
76+
width: geometry.width.to_i,
77+
height: geometry.height.to_i
78+
}
79+
end
80+
end
81+
82+
def allowed_content_types
83+
validations[:allowed_extensions].collect do |allowed_content_type|
84+
MimeMagic.by_extension(allowed_content_type).type
85+
end
86+
end
87+
88+
def mapping_field_name
89+
"#{field_name.parameterize('_')}_asset_file_name"
90+
end
91+
92+
def validate_presence?
93+
validations.key? :presence
94+
end
95+
96+
def attachment_size_validator
97+
AttachmentSizeValidator.new(validations[:size].merge(attributes: :asset))
98+
end
99+
100+
def attachment_content_type_validator
101+
AttachmentContentTypeValidator.new({content_type: allowed_content_types}.merge(attributes: :asset))
102+
end
103+
104+
alias_method :valid_presence_validation?, :validate_presence?
105+
106+
def validate_size?
107+
begin
108+
attachment_size_validator
109+
true
110+
rescue ArgumentError, NoMethodError
111+
false
112+
end
113+
end
114+
115+
def validate_content_type?
116+
begin
117+
attachment_content_type_validator
118+
true
119+
rescue ArgumentError, NoMethodError
120+
false
121+
end
122+
end
123+
124+
def validate_asset_size
125+
attachment_size_validator.validate_each(self, :asset, asset)
126+
end
127+
128+
def validate_asset_content_type
129+
attachment_content_type_validator.validate_each(self, :asset, asset)
130+
end
131+
132+
def style_urls
133+
if existing_data.empty?
134+
(metadata[:styles].map { |key, value| [key, asset.url(key)] }).to_h
135+
else
136+
existing_data[:asset][:style_urls]
137+
end
138+
end
139+
140+
def existing_metadata
141+
metadata.except!(:existing_data)
142+
143+
<<<<<<< HEAD
144+
unless @existing_data.empty?
145+
metadata[:path].gsub(":id", @existing_data['asset_field_type_id']) if metadata[:path]
146+
=======
147+
unless existing_data.empty?
148+
metadata[:path] = updated_url(existing_data['asset']['url'])
149+
>>>>>>> Implement storage of thumbnail/style URLs, asset wizard info box, and asset thumbnail in index
150+
end
151+
152+
metadata
153+
end
154+
end

lib/cortex/plugins/core/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module Cortex
22
module Plugins
33
module Core
4-
VERSION = '0.4.5'
4+
VERSION = '0.4.6'
55
end
66
end
77
end

0 commit comments

Comments
 (0)