fclay 0.1.45 → 0.1.46

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ad333cfb2a580016e4f97990656059d30f60d4c
4
- data.tar.gz: 9ce6765e218bba54c7c31cd606ebb95bf8779a10
3
+ metadata.gz: 6ab6904daef5ad6af4ee6d8dc265cd731298d2ba
4
+ data.tar.gz: 8b99722c842ef393c41307b1c8d3695768b19b05
5
5
  SHA512:
6
- metadata.gz: 85dc73bdb4126a7ecc4950929177a0cdc1f20482686bb527f89ac4a77976e4102233b84fa10379621fecb6ceded20432f65dd06df30103cd1968296767033cee
7
- data.tar.gz: ed9ee1c731ee18a4effac48d43597aaa397a2a6c19b8e858018dfc0d1e1b88207fda3fb9ae295c8211187acbc510064d077fb4e4007dc57df2a7cf8b5f89d9ed
6
+ metadata.gz: 77783239ea607673a91fe65b3ca69105b4073ecd4bae284cdfacfa074f5ba5e060e7f223cf64ef13b8e39fe60591398a4805f50a75575b8d698b9c956f3ef49b
7
+ data.tar.gz: 4cf19d2e0c08dcbc5d0f29b5cca672a71e544b608721632970311d1d4f7602dc41605f4c37931a9c23d8d32da8428c66184cd1996c6caf4b6534f1e186574b20
data/README.md CHANGED
@@ -52,8 +52,8 @@ Configuring with `config\initializers\fclay.rb`:
52
52
  config.storage_policy = "s3"
53
53
  config.remote_storages = {
54
54
  "s3" => {
55
- kind: 'aws',
56
- storage_policy: "storage_policy_name",
55
+ kind: 's3',
56
+ bucket: "bucket_name",
57
57
  }
58
58
  }
59
59
  end
@@ -1,70 +1,70 @@
1
1
  require 'base64'
2
2
 
3
- module Fclay
3
+ module Fclay
4
4
  module Attachment
5
5
 
6
6
  extend ActiveSupport::Concern
7
-
7
+
8
8
  CALLBACKS = [:process,:upload,:delete]
9
-
10
-
11
- included do
12
-
9
+
10
+
11
+ included do
12
+
13
13
  callbacks = CALLBACKS
14
-
14
+
15
15
  case fclay_options[:without].class.name
16
16
  when "Symbol"
17
17
  callbacks.clear if fclay_options[:without] == :all
18
18
  when "Array"
19
19
  callbacks -= fclay_options[:without]
20
- end
21
-
20
+ end
21
+
22
22
  before_save :process_file if callbacks.include? :process
23
23
  after_save :process_upload if callbacks.include? :upload
24
24
  before_destroy :delete_files if callbacks.include? :delete
25
-
25
+
26
26
  end
27
27
 
28
28
  attr_accessor :file
29
-
29
+
30
30
  def delete_files
31
-
32
- case self.file_location
31
+
32
+ case self.file_location
33
33
  when 's3'
34
34
  delete_remote_files
35
35
  when 'local'
36
36
  delete_local_files
37
37
  end
38
-
38
+
39
39
  end
40
-
40
+
41
41
  def process_upload
42
42
  return unless need_upload
43
- if self.class.fclay_options[:processing] == :foreground
43
+ if self.class.fclay_options[:processing] == :foreground
44
44
  upload
45
45
  else
46
46
  upload_later
47
47
  end
48
48
  end
49
-
49
+
50
50
  def need_upload
51
51
  Fclay.configuration.storage_policy != :local && self.file_location == "local"
52
52
  end
53
-
53
+
54
54
  def upload_later
55
-
55
+
56
56
  self.try(:log,"upload_later() called, need_upload: #{need_upload}")
57
57
  if need_upload
58
- job = Fclay::UploadJob.perform_later(self.class.name,self.id)
58
+ job = Fclay::UploadJob.perform_later(self.class.name,self.id)
59
59
  self.try(:log,"sheduled! job id: #{job.provider_job_id}")
60
60
  end
61
-
61
+
62
62
  end
63
-
63
+
64
64
  def upload
65
65
  Fclay::Attachment.upload self.class.name,self.id
66
66
  end
67
-
67
+
68
68
  def self.upload type,id
69
69
  type = type.safe_constantize
70
70
  return unless type
@@ -73,7 +73,7 @@ module Fclay
73
73
  return if !uploading_object || !uploading_object.need_upload
74
74
  content_type = uploading_object.try(:content_type)
75
75
  bucket = Fclay.remote_storage.bucket_object
76
-
76
+
77
77
  uploading_object.try(:log,"Start uploading")
78
78
  (uploading_object.class.fclay_options[:styles] || [nil]).each do |style|
79
79
  obj = bucket.object(uploading_object.remote_file_path(style))
@@ -88,7 +88,7 @@ module Fclay
88
88
  uploading_object.try(:log,"Sucessful uploaded! file_status: 'idle', file_location: #{Fclay.remote_storage.name}")
89
89
  uploading_object.delete_local_files
90
90
  uploading_object.try(:uploaded)
91
-
91
+
92
92
 
93
93
  end
94
94
 
@@ -96,9 +96,9 @@ module Fclay
96
96
  errors.add(:file, 'must be present') if id.blank? && !@file
97
97
  end
98
98
 
99
- def file_size_mb
99
+ def file_size_mb
100
100
 
101
- "#{((self.file_size >> 10).to_f / 1024).round(2)} Mb" if self.file_size
101
+ "#{((self.file_size >> 10).to_f / 1024).round(2)} Mb" if self.file_size
102
102
 
103
103
  end
104
104
 
@@ -113,7 +113,7 @@ module Fclay
113
113
  remote_file_url(style)
114
114
  end
115
115
  end
116
-
116
+
117
117
  def final_file_url(style=nil)
118
118
  return self.file_name if self.file_location == "external_link"
119
119
  if Fclay.configuration.storage_policy != :local
@@ -134,7 +134,7 @@ module Fclay
134
134
  end
135
135
 
136
136
  def local_file_url(style=nil)
137
- url = Fclay.configuration.local_storage_host
137
+ url = Fclay.configuration.local_storage_host
138
138
  url += "#{Fclay.configuration.local_url}/#{self.class.name.tableize}"
139
139
  url += "/#{style.to_s}" if style
140
140
  url += "/#{file_name}"
@@ -142,12 +142,12 @@ module Fclay
142
142
  end
143
143
 
144
144
  def short_local_file_url(style=nil)
145
-
145
+
146
146
  end
147
147
 
148
- def local_file_dir(style=nil)
148
+ def local_file_dir(style=nil)
149
149
  dir = "#{Rails.root.to_s + Fclay.configuration.local_folder}/#{self.class.name.tableize}"
150
- dir += "/#{style.to_s}" if style
150
+ dir += "/#{style.to_s}" if style
151
151
  dir
152
152
  end
153
153
 
@@ -156,10 +156,10 @@ module Fclay
156
156
  path += "#{self.class.name.tableize}"
157
157
  path += "/#{style.to_s}" if style
158
158
  path += "/#{file_name}"
159
- path
159
+ path
160
160
  end
161
161
 
162
- def delete_tmp_file
162
+ def delete_tmp_file
163
163
  FileUtils.rm(@file.try(:path) || @file[:path],{:force => true}) if @file
164
164
  @file = nil
165
165
  end
@@ -173,58 +173,58 @@ module Fclay
173
173
  end
174
174
 
175
175
  def process_file
176
- self.try(:log,"process_file called")
177
- self.try(:log,"@file: #{@file.try(:to_s)}")
176
+ self.try(:log,"process_file called")
177
+ self.try(:log,"@file: #{@file.try(:to_s)}")
178
178
  return unless @file
179
-
179
+
180
180
  delete_files
181
181
  path = @file.try(:path) || @file.try(:[],:path)
182
-
183
- self.try(:log,"fetched path: #{path.try(:to_s)}")
182
+
183
+ self.try(:log,"fetched path: #{path.try(:to_s)}")
184
184
  return unless path
185
-
185
+
186
186
  self.content_type = @file.try(:content_type) || @file.try(:[],:content_type) if self.respond_to?(:'content_type=')
187
-
187
+
188
188
  if path[0..3] == "http"
189
189
  self.file_status = 'idle'
190
190
  self.file_location = 'external_link'
191
191
  self.file_name = path
192
- else
192
+ else
193
193
  create_dirs
194
194
  fetch_file_name
195
195
 
196
- (self.class.fclay_options[:styles] || [nil]).each do |style|
196
+ (self.class.fclay_options[:styles] || [nil]).each do |style|
197
197
  FileUtils.cp(path,local_file_path(style))
198
198
  `chmod 777 #{local_file_path(style)}`
199
199
  end
200
-
200
+ self.original_file_name = @file.try(:original_filename) || @file.try(:[],:content_type)
201
201
  delete_tmp_file
202
202
  set_file_size self.class.fclay_options[:styles].try(:first)
203
203
  self.file_location = 'local'
204
204
  self.file_status = need_upload ? "processing" : "idle"
205
- self.try(:log,"file_processed, file_status: #{self.file_status}")
205
+ self.try(:log,"file_processed, file_status: #{self.file_status}")
206
206
  end
207
207
  end
208
-
208
+
209
209
  def fetch_file_name
210
-
210
+
211
211
  return if self.file_name.present?
212
212
  ext = fetch_extension
213
213
 
214
214
  self.file_name = try(:fclay_attachment_filename)
215
215
  self.file_name = SecureRandom.hex unless self.file_name
216
216
  self.file_name += ".#{ext}" if ext
217
-
217
+
218
218
  end
219
-
219
+
220
220
  def fetch_extension
221
221
  ext = self.class.fclay_options[:extension]
222
222
  return nil if ext == false
223
- return ext.to_s if ext
223
+ return ext.to_s if ext
224
224
  @file.original_filename.split(".").try(:last) if @file.try(:original_filename)
225
225
  end
226
226
 
227
- def delete_local_files
227
+ def delete_local_files
228
228
 
229
229
  begin
230
230
  (self.class.fclay_options[:styles] || [nil]).each do |style|
@@ -234,32 +234,31 @@ module Fclay
234
234
  Rails.logger.info "Deleting Media #{id} sync file not found"
235
235
  end
236
236
  true
237
-
238
- end
237
+
238
+ end
239
239
 
240
240
  def delete_remote_files
241
-
241
+
242
242
  (self.class.fclay_options[:styles] || [nil]).each do |style|
243
243
  Fclay.remote_storage.bucket_object.object(remote_file_path(style)).delete
244
244
  end
245
245
  end
246
-
246
+
247
247
  def set_file_size style=nil
248
248
  self.file_size = File.size local_file_path(style)
249
249
  end
250
-
250
+
251
251
  def self.resolve_file_url navigation_complex_id,type,file_name,style=nil
252
-
252
+
253
253
  return "" if file_name.nil? || type.nil?
254
-
254
+
255
255
  path = "http://s3.amazonaws.com/#{Fclay.remote_storage.bucket_name}"
256
256
  path += "/navigation_complex/#{navigation_complex_id}" if navigation_complex_id
257
257
  path += "/#{type}"
258
258
  path += "/#{style.to_s}" if style
259
259
  path += "/#{file_name}"
260
260
  path
261
- end
261
+ end
262
262
 
263
263
  end
264
264
  end
265
-
@@ -1,3 +1,3 @@
1
1
  module Fclay
2
- VERSION = "0.1.45"
2
+ VERSION = "0.1.46"
3
3
  end
@@ -1,13 +1,14 @@
1
- class <%= migration_class_name %> < ActiveRecord::Migration
1
+ class <%= migration_class_name %> < ActiveRecord::Migration[5.1]
2
2
  def change
3
-
3
+
4
4
  add_column :<%= table_name %>, :file_name, :string
5
+ add_column :<%= table_name %>, :original_file_name, :string
5
6
  add_column :<%= table_name %>, :file_size, :integer
6
7
  add_column :<%= table_name %>, :file_status, :string, :default => "new"
7
8
  add_column :<%= table_name %>, :file_location, :string
8
9
  add_column :<%= table_name %>, :content_type, :string
9
-
10
+
10
11
  end
11
12
 
12
-
13
+
13
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fclay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.45
4
+ version: 0.1.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Galiev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-21 00:00:00.000000000 Z
11
+ date: 2018-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.6.8
102
+ rubygems_version: 2.6.13
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Summary