s3ff 0.10.2 → 0.11.0

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: 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