dir_model 0.5.1 → 0.5.2

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