dir_model 0.6.2 → 0.7.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: 7378de9f6c47b4b77eb94586bf020f0fd63936f4
4
- data.tar.gz: f0658de2bead2696f7b2c0f42acc3a47657bfd76
3
+ metadata.gz: 488a7e3ac0284d3de0d578ff43fe0293132b4a03
4
+ data.tar.gz: 61b2bf17b362a211bddda139effe0cbcf628d594
5
5
  SHA512:
6
- metadata.gz: 76622ae1c4b1d7c548147f0f51ed28efc80dc97be1d4008b23c93c689e687674caac34828ecc68e424da6e96f2bbab199f57d435308c423260917534b0c55ab4
7
- data.tar.gz: de928cf63446966eb56948c029f742f97d5ede9058d94698e2cbe4336e963ccba6baca339851811e8b0a281575ab7b5f94879228e0f65818e8bf1b1c207b9f76
6
+ metadata.gz: a91b3e607bdc5e8baa616cd1c4541edb45a733307d69128366bac0f0f9cf423a192e5af3dc8630194538fcc9371c023b778df7d4cef163060c97b0b415486457
7
+ data.tar.gz: e2477c238e7c641cff600fa2fb0db60b7c613438d73aa3ef3a2c4b0936aa36970ad25eaa7e51f60e7c45f965c7e240278d01fb3b7131707422b93f9006d85742
data/.gitignore CHANGED
@@ -8,4 +8,5 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
 
11
- .idea/*
11
+ .idea/*
12
+ .byebug_history
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### VERSION 0.7.0
2
+
3
+ * Change the design of `AggregateDir` to make it composable
4
+
1
5
  ### VERSION 0.6.2
2
6
 
3
7
  * Removing escaping from the code, so now `foreign_key` should be escaped on the caller, basically user `Regexp.quote` :
data/README.md CHANGED
@@ -160,10 +160,12 @@ fixture_models = [
160
160
  })
161
161
  ]
162
162
 
163
- exporter = DirModel::Export::AggregateDir.new(BasicExportDirModel)
163
+ exporter = DirModel::Export::AggregateDir.new
164
164
 
165
165
  exporter.generate do |dir|
166
- models.each { |model| dir << model }
166
+ models.each do |model|
167
+ dir.append_model(BasicExportDirModel, model)
168
+ end
167
169
  end
168
170
 
169
171
  exporter.dir_path # => path of generated dir .../Sectors
data/UPGRADE.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # Upgrading
2
2
 
3
+ # Upgrading from 0.6.2 to 0.7.0
4
+
5
+ * Change the manner of call AggregateDir like
6
+
7
+ From
8
+
9
+ ```
10
+ exporter = DirModel::Export::AggregateDir.new(BasicExportDirModel)
11
+
12
+ exporter.generate do |dir|
13
+ models.each do |model|
14
+ dir << model
15
+ end
16
+ end
17
+ ```
18
+
19
+
20
+ To
21
+
22
+ ```
23
+ exporter = DirModel::Export::AggregateDir.new
24
+
25
+ exporter.generate do |dir|
26
+ models.each do |model|
27
+ dir.append_model(BasicExportDirModel, model)
28
+ end
29
+ end
30
+ ```
31
+
32
+ Now you can compose like
33
+
34
+ ```
35
+ exporter = DirModel::Export::AggregateDir.new
36
+
37
+ exporter.generate do |dir|
38
+ models.each do |model|
39
+ dir.append_model(SectorExportDirModel, model)
40
+ end
41
+ end.generate do |dir|
42
+ models.each do |model|
43
+ dir.append_model(ZoneExportDirModel, model)
44
+ end
45
+ end
46
+ ```
47
+
3
48
  # Upgrading from 0.5.1 to 0.6.0
4
49
 
5
50
  * relation need to have a foreign_key and dir_model related need to have a regex with the foreign_key in params
data/dir_model.gemspec CHANGED
@@ -19,6 +19,6 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'activesupport', '~> 4.2'
22
- spec.add_dependency 'inherited_class_var', '~> 0.1'
22
+ spec.add_dependency 'inherited_class_var', '1.0.0.beta1'
23
23
  spec.add_dependency 'fastimage', '~> 1.8'
24
24
  end
@@ -5,23 +5,21 @@ module DirModel
5
5
  class AggregateDir
6
6
  include Utils
7
7
 
8
- attr_reader :export_dir_model_class, :context, :dir_path
8
+ attr_reader :context, :dir_path
9
9
 
10
10
  # @param [Export] export_model export model class
11
- def initialize(export_dir_model_class, context={})
12
- @export_dir_model_class = export_dir_model_class
13
- @context = context.to_h.symbolize_keys
14
- @dir_path = Dir.mktmpdir
11
+ def initialize(context={})
12
+ @context = context.to_h.symbolize_keys
13
+ @dir_path = Dir.mktmpdir
15
14
  end
16
15
 
17
16
  # Add a row_model to the
18
17
  # @param [] source_model the source model of the export file model
19
18
  # @param [Hash] context the extra context given to the instance of the file model
20
- def append_model(source_model, context={})
19
+ def append_model(export_dir_model_class, source_model, context={})
21
20
  source_path = export_dir_model_class.new(source_model, context.reverse_merge(self.context)).path
22
21
  FileUtils.cp_r Dir.glob("#{source_path}/*"), dir_path
23
22
  end
24
- alias_method :<<, :append_model
25
23
 
26
24
  def generate
27
25
  yield self
@@ -31,7 +29,6 @@ module DirModel
31
29
  def files
32
30
  Dir["#{@dir_path}/**/*"].select { |f| File.file?(f) }
33
31
  end
34
-
35
32
  end
36
33
  end
37
34
  end
@@ -90,11 +90,9 @@ module DirModel
90
90
  end
91
91
 
92
92
  def get_regexp
93
- if foreign_value
94
- Regexp.new(self.class.options[:regex].call(foreign_value), Regexp::IGNORECASE)
95
- else
96
- self.class.options[:regex].call
97
- end
93
+ args = []
94
+ args << foreign_value if foreign_value
95
+ instance_exec(*args, &self.class.options[:regex])
98
96
  end
99
97
  end
100
98
  end
@@ -29,10 +29,9 @@ module DirModel
29
29
  protected
30
30
 
31
31
  def file(file_name, options={})
32
- merge_files(file_name.to_sym => options)
32
+ files_object.merge(file_name.to_sym => options)
33
33
  raise ArgumentError.new("You cannot define more of one file: but you can add relations, see README") if files.keys.size > 1
34
34
  end
35
-
36
35
  end
37
36
  end
38
37
  end
@@ -81,7 +81,7 @@ module DirModel
81
81
  def has_one(relation_name, dir_model_class, options)
82
82
  relation_name = relation_name.to_sym
83
83
 
84
- merge_has_one_relationship(relation_name => { dir_model_class: dir_model_class }.merge(options))
84
+ has_one_relationship_object.merge(relation_name => { dir_model_class: dir_model_class }.merge(options))
85
85
 
86
86
  define_method(:has_one?) do
87
87
  true
@@ -113,7 +113,7 @@ module DirModel
113
113
  raise "for now, DirModel's has_many may only be called once" if @_has_many_relationship.present?
114
114
  relation_name = relation_name.to_sym
115
115
 
116
- merge_has_many_relationship(relation_name => { dir_model_class: dir_model_class }.merge(options))
116
+ has_many_relationship_object.merge(relation_name => { dir_model_class: dir_model_class }.merge(options))
117
117
 
118
118
  define_method(:has_many?) do
119
119
  true
@@ -1,3 +1,3 @@
1
1
  module DirModel
2
- VERSION = '0.6.2'
2
+ VERSION = '0.7.0'
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.2
4
+ version: 0.7.0
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-03-03 00:00:00.000000000 Z
11
+ date: 2017-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: inherited_class_var
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '0.1'
33
+ version: 1.0.0.beta1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: '0.1'
40
+ version: 1.0.0.beta1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: fastimage
43
43
  requirement: !ruby/object:Gem::Requirement