dir_model 0.6.1 → 0.6.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: 8b3a8d350b4d8004603f0dc60aafcea63d16d093
4
- data.tar.gz: 829174e25f6ca9217891cb4e50316f7aaf95ba40
3
+ metadata.gz: 7378de9f6c47b4b77eb94586bf020f0fd63936f4
4
+ data.tar.gz: f0658de2bead2696f7b2c0f42acc3a47657bfd76
5
5
  SHA512:
6
- metadata.gz: 44cef5e36645bf8a328e24cff4bb64e89fe99150f998264d34b877b8e7bfa7706c66fec48d820bf2eaa7f2194561c0e9eb21c5a0ffd11ead8d66821ca94c3528
7
- data.tar.gz: 32dfd96f5ea816d1f3eea320e74fa9903383bd580db28b6a55c85a099a525cbad5743d5c4a228ded24a518c093dffd88534c8355cc9c428ae38ad0bf2b185389
6
+ metadata.gz: 76622ae1c4b1d7c548147f0f51ed28efc80dc97be1d4008b23c93c689e687674caac34828ecc68e424da6e96f2bbab199f57d435308c423260917534b0c55ab4
7
+ data.tar.gz: de928cf63446966eb56948c029f742f97d5ede9058d94698e2cbe4336e963ccba6baca339851811e8b0a281575ab7b5f94879228e0f65818e8bf1b1c207b9f76
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ### VERSION 0.6.2
2
+
3
+ * Removing escaping from the code, so now `foreign_key` should be escaped on the caller, basically user `Regexp.quote` :
4
+
5
+ ```
6
+ class ParentImportDirModel < BasicImportDirModel
7
+ has_one :dependency, ChildImportDirModel, foreign_key: :sector_name
8
+
9
+ def sector_name
10
+ "sector_#{Regexp.quote(sector_id)}"
11
+ end
12
+ end
13
+ ```
14
+
1
15
  ### VERSION 0.6.1
2
16
 
3
17
  * escape special characters on foreign key values. Due of this relations weren't be found.
@@ -41,14 +41,20 @@ module DirModel
41
41
  if dir_model.has_relations?
42
42
  if dir_model.has_one?
43
43
  child = search(path, context) do |_path, _context|
44
- dir_model.append_dir_model(_path.current_path, index: _path.index, context: _context)
44
+ related_dir_model = nil
45
+ dir_model.has_one.each do |name, options|
46
+ related_dir_model = dir_model.append_dir_model(_path.current_path, index: _path.index, context: _context, relation_name: name, relation_options: options)
47
+ end
48
+ related_dir_model
45
49
  end.first
50
+ # Recursive call on children
46
51
  find_relations(child, path, context) if child
47
52
  end
48
53
  if dir_model.has_many?
49
54
  children = search(path, context) do |_path, _context|
50
55
  dir_model.append_dir_models(_path.current_path, index: _path.index, context: _context)
51
56
  end
57
+ # Recursive call on children
52
58
  children.each { |_child| find_relations(_child, path, context) }
53
59
  end
54
60
  end
@@ -85,7 +91,7 @@ module DirModel
85
91
 
86
92
  def get_regexp
87
93
  if foreign_value
88
- Regexp.new(self.class.options[:regex].call(Regexp.quote(foreign_value)), Regexp::IGNORECASE)
94
+ Regexp.new(self.class.options[:regex].call(foreign_value), Regexp::IGNORECASE)
89
95
  else
90
96
  self.class.options[:regex].call
91
97
  end
@@ -20,8 +20,8 @@ module DirModel
20
20
  #
21
21
  # @return [Model] return the child if it is valid, otherwise returns nil
22
22
  def append_dir_model(source_path, options={})
23
- relation_name = self.class.has_one_relationship.keys.first
24
- _options = self.class.has_one_relationship.values.first
23
+ relation_name = options[:relation_name]
24
+ _options = options[:relation_options]
25
25
  related_class = _options[:dir_model_class]
26
26
  foreign_key = _options[:foreign_key]
27
27
  foreign_value = self.send(foreign_key)
@@ -79,8 +79,6 @@ module DirModel
79
79
  # @param [Symbol] relation_name the name of the relation
80
80
  # @param [DirModel::Import] dir_model_class class of the relation
81
81
  def has_one(relation_name, dir_model_class, options)
82
- raise "for now, DirModel's has_one may only be called once" if @_has_one_relationship.present?
83
-
84
82
  relation_name = relation_name.to_sym
85
83
 
86
84
  merge_has_one_relationship(relation_name => { dir_model_class: dir_model_class }.merge(options))
@@ -89,6 +87,10 @@ module DirModel
89
87
  true
90
88
  end
91
89
 
90
+ define_method(:has_one) do
91
+ self.class.has_one_relationship
92
+ end
93
+
92
94
  define_method("#{relation_name}=") do |value|
93
95
  instance_variable_set("@#{relation_name}", value)
94
96
  end
@@ -109,7 +111,6 @@ module DirModel
109
111
  # @param [Hash] basically for set :foreign_key
110
112
  def has_many(relation_name, dir_model_class, options)
111
113
  raise "for now, DirModel's has_many may only be called once" if @_has_many_relationship.present?
112
-
113
114
  relation_name = relation_name.to_sym
114
115
 
115
116
  merge_has_many_relationship(relation_name => { dir_model_class: dir_model_class }.merge(options))
@@ -1,3 +1,3 @@
1
1
  module DirModel
2
- VERSION = '0.6.1'
2
+ VERSION = '0.6.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.6.1
4
+ version: 0.6.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: 2016-02-22 00:00:00.000000000 Z
11
+ date: 2016-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport