dir_model 0.5.1 → 0.5.2

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: 31f2c4f7e3899b8393fcd1246acdaf6e34e57128
4
- data.tar.gz: 11a8f61f3fa2cf01ccc673df484794caa293cfdc
3
+ metadata.gz: 97702ad9ff5a3415d30ca57f0ddfb416ca123aa7
4
+ data.tar.gz: 35f8b36a9e1a8c8567523188aa85fe452084be9b
5
5
  SHA512:
6
- metadata.gz: 565270b028ebd60317079ab4ed93ab1111e91467ca832108216ff7920c9bad0048a6bf7d0cfe0faf96ad6ced0e8b1fdc22975436245b6a3730bf0bf147be6c8f
7
- data.tar.gz: 9c64417df2fdfcc362f7089a5559e49af51a439485f777b733ae096304802e56845c2aa67c6ce41f41cc36559bd058d1814c98ec2ebfbb7d04388fd08f0fce25
6
+ metadata.gz: 4c7f45eaf2273af554f5698443a6c4c32e3a29fa1c4a0815bce3a7bc2bb5728dea044fc7087f8a304111f79cccdbcdb35326e38cebc9bdd7d056c170b71f27cb
7
+ data.tar.gz: 1da95475764bc987b22499a9236757480113f7f9eb2c96882b0a303d419c79b8864a93e69a96614c506bf0217c157bb298aa38a6af95bdd48c45a235f8af1b6c
data/UPGRADE.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Upgrading from 0.4.0 to 0.5.0
4
4
 
5
- * Ensure you have only on definition of `file:` by dir_model
5
+ * Ensure you have only one definition of `file:` by dir_model
6
6
 
7
7
  # Upgrading from 0.2.0 to 0.3.0
8
8
 
@@ -4,8 +4,8 @@ module DirModel
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  included do
7
- define_skip_method(self.file_name)
8
7
  define_file_method(self.file_name)
8
+ define_skip_method(self.file_name)
9
9
  define_extension_method(self.file_name)
10
10
  end
11
11
 
@@ -17,7 +17,19 @@ module DirModel
17
17
  # @param file_name [Symbol] the file: name
18
18
  def define_skip_method(file_name)
19
19
  define_method(:skip?) do
20
- !self.public_send(file_name).try(:present?)
20
+ _file = self.public_send(file_name)
21
+
22
+ return true if _file.nil?
23
+ if _file.respond_to?(:exists?) # Carrierwave with remote file
24
+ return true unless _file.exists?
25
+ else
26
+ if _file.respond_to?(:path) # Locale file
27
+ return true unless File.exists?(_file.path)
28
+ end
29
+ end
30
+ return true unless _file.respond_to?(:read)
31
+
32
+ false
21
33
  end
22
34
  end
23
35
 
@@ -50,8 +62,9 @@ module DirModel
50
62
 
51
63
  def file(file_name, options={})
52
64
  super
53
- define_skip_method(file_name)
65
+
54
66
  define_file_method(file_name)
67
+ define_skip_method(file_name)
55
68
  define_extension_method(file_name)
56
69
  end
57
70
  end
@@ -40,11 +40,17 @@ module DirModel
40
40
  dir_path = get_value_of(options[:path])
41
41
  file_path = File.join(dir_path, get_value_of(options[:name]))
42
42
 
43
- mkdir { File.join(@root_path, dir_path) }
44
-
45
43
  file_path = ensure_extension(file_path, file_name)
46
44
 
47
- File.open(File.join(@root_path, file_path), 'wb') {|f| f.write(self.public_send(file_name).read) }
45
+ full_path = File.join(@root_path, file_path)
46
+
47
+ mkdir { File.dirname(full_path) }
48
+
49
+ begin
50
+ File.open(full_path, 'wb') {|f| f.write(self.public_send(file_name).read) }
51
+ rescue Errno::ENOENT => e
52
+ warn e.message
53
+ end
48
54
  ensure
49
55
  @generated = true
50
56
  end
@@ -1,3 +1,3 @@
1
1
  module DirModel
2
- VERSION = '0.5.1'
2
+ VERSION = '0.5.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dir_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Chung
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-31 00:00:00.000000000 Z
11
+ date: 2016-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  requirements: []
105
105
  rubyforge_project:
106
- rubygems_version: 2.4.5.1
106
+ rubygems_version: 2.5.1
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: Import and export directories with an ORM-like interface.