artirix_data_models 0.13.0 → 0.14.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: 5f5c9b67e6750f823690f34a19b2a147c496b682
4
- data.tar.gz: 1c5e038ae44746f7c24ed28716bdd02ebe88160b
3
+ metadata.gz: 9a060a4fa04fce00cde5999d99498e7b15e46485
4
+ data.tar.gz: bc3c22509e46bd8474f4c60641d872fa1e06d882
5
5
  SHA512:
6
- metadata.gz: c664f3ec187ed056d575d25ac933c901e78abdac5b7987500bfa44405959b37ff0cb36b01b998a6f899294f66830afc0e851b51e03e420c44025a68b59cd5258
7
- data.tar.gz: 587cadda688164919abc0d7a27791c82549f6b878d59d876c349f067b16ec24305d24c41b8965a50cf1958b4ea3b66bf9d83476ff28a32f7e491332d434ab700
6
+ metadata.gz: a73b7fa9d687ec9acc1b1d9b6e63a61db690c6bf0289f4ef21cca2aa597f3535cd60aa212daac6d1a00d57062187bc04ed26116e9866ed0ae2601c4f54d2ac46
7
+ data.tar.gz: a9280128257047ed0ba48acc5fe4c03dd5585f4dfac5a6f1667e62da99ad1cbe534346ab7aa8f9fc32a1e4803c527a8a1b649515f430048fcbde5123c6b56d9f
data/README.md CHANGED
@@ -268,6 +268,20 @@ end
268
268
 
269
269
  ## Changes
270
270
 
271
+ ### 0.14.0
272
+ - `Model`: added static `mark_full_mode_by_default`: if called in the model definition it will make all new models full mode by default
273
+
274
+ ```ruby
275
+ class MyModel
276
+ include ArtirixDataModels::Model
277
+
278
+ mark_full_mode_by_default
279
+ end
280
+
281
+ x = MyModel.new some: :params
282
+ x.full_mode? # => true
283
+ ```
284
+
271
285
  ### 0.13.0
272
286
  - `DAO`: fake responses lazy loaded
273
287
  - `DAO`: response adaptor methods of basic dao moved to a module, included in `BasicDAO` and as part of the module `DAO`. Also added `response_adaptor_for_identity`, which returns the same.
@@ -378,7 +378,11 @@ module ArtirixDataModels
378
378
  end
379
379
 
380
380
  def full_mode?
381
- !!@_full_mode
381
+ if @_full_mode.nil?
382
+ self.class.default_full_mode?
383
+ else
384
+ @_full_mode
385
+ end
382
386
  end
383
387
 
384
388
  def mark_full_mode
@@ -436,17 +440,30 @@ module ArtirixDataModels
436
440
  def is_always_in_partial_mode?(attribute)
437
441
  attribute_config.is_always_in_partial_mode?(attribute)
438
442
  end
443
+
444
+ def default_full_mode?
445
+ !!attribute_config.default_full_mode
446
+ end
447
+
448
+ def mark_full_mode_by_default
449
+ attribute_config.default_full_mode = true
450
+ end
451
+
452
+ def mark_partial_mode_by_default
453
+ attribute_config.default_full_mode = false
454
+ end
439
455
  end
440
456
  end
441
457
 
442
458
  class AttributeConfig
443
459
  attr_reader :attribute_list, :always_in_partial_mode_list
444
- attr_accessor :parent_attribute_config
460
+ attr_accessor :parent_attribute_config, :default_full_mode
445
461
 
446
462
  def initialize
447
463
  @attribute_list = Set.new
448
464
  @always_in_partial_mode_list = Set.new
449
465
  @parent_attribute_config = nil
466
+ @default_full_mode = false
450
467
  end
451
468
 
452
469
  def attributes
@@ -1,3 +1,3 @@
1
1
  module ArtirixDataModels
2
- VERSION = '0.13.0'
2
+ VERSION = '0.14.0'
3
3
  end
@@ -121,4 +121,26 @@ RSpec.describe MyModel, type: :model do
121
121
  end
122
122
  end
123
123
 
124
- end
124
+ end
125
+
126
+
127
+ class MyModelFullMode
128
+ include ArtirixDataModels::Model
129
+
130
+ mark_full_mode_by_default
131
+
132
+ attribute :id, :name
133
+ end
134
+
135
+ RSpec.describe MyModelFullMode, type: :model do
136
+
137
+ subject { described_class.new data }
138
+
139
+ let(:data) { { id: 1, name: 'some name' } }
140
+
141
+ describe '.mark_full_mode_by_default' do
142
+ it 'makes new instances full mode by default' do
143
+ expect(subject.full_mode?).to be_truthy
144
+ end
145
+ end
146
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artirix_data_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Turiño
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-29 00:00:00.000000000 Z
11
+ date: 2016-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport