dir_model 0.6.2 → 0.7.0

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