s3ff 0.10.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee02eea6c1abbeb05b96862bc1af431e0fe03bc2
4
- data.tar.gz: 82ce6654ba31e8516af38dacb85b771af855e671
3
+ metadata.gz: 4bd380626001b2b203f6924a3b66d6e89bf28c7e
4
+ data.tar.gz: 0cd8675ecdd614a797e39062e46b9f97ae795000
5
5
  SHA512:
6
- metadata.gz: ac8422d2d00000c60433f202935788ad244cee8f8080f865e5f9152ed653382b426b7a1395a0a373641c36b4199af60f978ea23b959644524ba9e30e2c55550c
7
- data.tar.gz: 98812baa4b41c2b558f36a365b880cc42d15399b84e0c0be6ebbeb64d38be84b05cc8d13939941c77ac0c71fd77006d5b527766339308f0333023087108171b8
6
+ metadata.gz: 8c1ed0e0a858f87395cbd48fcb03b33f09ef844404f8701a971a23377d0d36721c32134d44eccb9d2b10222fa96b56728f350df9156eb2545ab523763d97561e
7
+ data.tar.gz: f61cbbea7b9c342d5005a6f1f90e7c7db2fe312892d7f54dc1e624de76abeb5572b6e006dab901d0d11e37e6e680ccbf4bec4c2404102317ab18239f5289b4ce
@@ -1,19 +1,34 @@
1
1
  module S3FF
2
2
  module ModelHelper
3
- def download_from_direct_url_with_delay(attr_name)
3
+ def download_from_direct_url_with_delay(attr_name, nil_direct_url_after_save: false)
4
4
  if self.respond_to?(:delay)
5
- self.class_eval <<-EOM
5
+ has_db_column = self.column_names.include?("#{attr_name}_direct_url") rescue false
6
6
 
7
- def #{attr_name}_direct_url
8
- @#{attr_name}_direct_url
9
- end
7
+ if has_db_column
8
+ self.class_eval <<-EOM
10
9
 
11
- def #{attr_name}_direct_url=(val)
12
- self.updated_at = Time.now if val != @#{attr_name}_direct_url
13
- @#{attr_name}_direct_url = val
14
- end
10
+ after_save :delay_s3ff_download_direct_url, if: -> { #{attr_name}_direct_url.present? && #{attr_name}_direct_url_changed? }
11
+
12
+ EOM
13
+ else
14
+ self.class_eval <<-EOM
15
+
16
+ def #{attr_name}_direct_url
17
+ @#{attr_name}_direct_url
18
+ end
15
19
 
16
- after_save :delay_s3ff_download_direct_url, if: proc { #{attr_name}_direct_url.present? }
20
+ def #{attr_name}_direct_url=(val)
21
+ #{"return if val.blank?" if nil_direct_url_after_save}
22
+ self.updated_at = Time.now if val != @#{attr_name}_direct_url
23
+ @#{attr_name}_direct_url = val
24
+ end
25
+
26
+ after_save :delay_s3ff_download_direct_url, if: proc { #{attr_name}_direct_url.present? }
27
+
28
+ EOM
29
+ end
30
+
31
+ self.class_eval <<-EOM
17
32
 
18
33
  def delay_s3ff_download_direct_url
19
34
  self.class.delay.s3ff_download_direct_url(id, #{attr_name}_direct_url)
@@ -24,11 +39,14 @@ module S3FF
24
39
  find(instance_id).update(
25
40
  #{attr_name}: file,
26
41
  #{attr_name}_file_name: File.basename(#{attr_name}_direct_url),
42
+ #{"#{attr_name}_direct_url: nil," if nil_direct_url_after_save}
27
43
  )
28
44
  end
29
45
  end
30
46
  EOM
31
47
  elsif self.respond_to?(:handle_asynchronously)
48
+
49
+ # handle_asynchronously requires db column anyways
32
50
  self.class_eval <<-EOM
33
51
  after_save :s3ff_download_direct_url, if: -> { #{attr_name}_direct_url.present? && #{attr_name}_direct_url_changed? }
34
52
 
@@ -37,6 +55,7 @@ module S3FF
37
55
  update(
38
56
  #{attr_name}: file,
39
57
  #{attr_name}_file_name: File.basename(#{attr_name}_direct_url),
58
+ #{"#{attr_name}_direct_url: nil," if nil_direct_url_after_save}
40
59
  )
41
60
  end
42
61
  end
data/lib/s3ff/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module S3FF
2
- VERSION = '0.10.2'
2
+ VERSION = '0.11.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3ff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chew Choon Keat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-26 00:00:00.000000000 Z
11
+ date: 2014-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: s3_file_field