unidom-category 1.6.6 → 1.6.7

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: 288af343565aecbe82a1a407b826dbca5bb06479
4
- data.tar.gz: 8f4ad8b60a1413f0b4208fa45a4d6d5b258e5bd3
3
+ metadata.gz: 327e3c1b6b31f400085d42a6db6d423413fecc89
4
+ data.tar.gz: ea3c26216914f7c62a47d7f3e30f6e8308d1275d
5
5
  SHA512:
6
- metadata.gz: 3e4d56692789e12a9fee0e8ee3584c3115adbcd54bd8886454ab8bb9d0d6bc677bc312a59cde45c364d150ba8bb4bb89468c2e57b46ac63a15dbc5876562d75b
7
- data.tar.gz: 296807f713273f5562411ed6981def77baf38b53162f59adf7ab8d0e321d084df2845197f93128a1ad1e528f0cd57004c57819ac85ba7bb8a08121adc6fd0121
6
+ metadata.gz: ebf5931767abe6a2618e5aac9fc11cb0c624d35e08008cdd63ec784a2d8923f95d0ffa5613f77c9648dca47e51e293b5c7abf269edd349b984a3d5491ae53311
7
+ data.tar.gz: e4ba296d1499cf920d84c7267b0f1e13de71124b843f52395d63644166d283eda7385ff5be1c126eb7a2f53cd40d4617a86693ba5e91ea8df926a8d72b5c91b3
data/README.md CHANGED
@@ -109,6 +109,8 @@ end
109
109
 
110
110
  ## RSpec examples
111
111
 
112
+ ### RSpec example manifest (run automatically)
113
+
112
114
  ```ruby
113
115
  # spec/models/unidom_spec.rb
114
116
  require 'unidom/category/models_rspec'
@@ -119,3 +121,35 @@ require 'unidom/category/types_rspec'
119
121
  # spec/validators/unidom_spec.rb
120
122
  require 'unidom/category/validators_rspec'
121
123
  ```
124
+
125
+ ### RSpec shared examples (to be integrated)
126
+
127
+ ```ruby
128
+ # spec/support/unidom_rspec_shared_examples.rb
129
+ require 'unidom/category/rspec_shared_examples'
130
+
131
+ # spec/models/unidom/category/categorizing_spec.rb
132
+ describe Unidom::Category::Categorizing, type: :model do
133
+
134
+ before :each do
135
+ end
136
+
137
+ after :each do
138
+ end
139
+
140
+ context do
141
+
142
+ model_attributes = {}
143
+
144
+ categorized = Unidom::Product::Product.create! name: 'Model X', abbreviation: 'MX', packing_norm: 'car', measurement_unit: 'car', opened_at: Time.now
145
+
146
+ tesla = Unidom::Party::Company.create! name: 'Tesla'
147
+ scheme = Unidom::Category::CategoryScheme.create! owner: tesla, name: 'eCar'
148
+ category = Unidom::Category::Category.create! scheme: scheme, name: 'Battery-powered vehicles'
149
+
150
+ it_behaves_like 'Unidom::Category::Categorizing', model_attributes, categorized, category
151
+
152
+ end
153
+
154
+ end
155
+ ```
@@ -14,7 +14,13 @@ class Unidom::Category::Categorizing < Unidom::Category::ApplicationRecord
14
14
  scope :categorized_is, ->(categorized) { where categorized: categorized }
15
15
 
16
16
  def self.categorize!(categorized, into: nil, at: Time.now)
17
+
18
+ assert_present! :categorized, categorized
19
+ assert_present! :into, into
20
+ assert_present! :at, at
21
+
17
22
  categorized_is(categorized).category_is(into).valid_at.alive.first_or_create! elemental: true, opened_at: at
23
+
18
24
  end
19
25
 
20
26
  end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Category::Categorizing'
@@ -33,7 +33,13 @@ class Unidom::Category::CategoryRollup < Unidom::Category::ApplicationRecord
33
33
  # 将 it 归为 into 的下级分类,时间是 at ,缺省为当前时间。如:
34
34
  # Unidom::Category::CategoryRollup.roll_up! moto, into: vehicle
35
35
  def self.roll_up!(it, into: nil, at: Time.now)
36
+
37
+ #assert_present! :it, it
38
+ #assert_present! :into, into
39
+ #assert_present! :at, at
40
+
36
41
  self.descendant_category_is(it).ancestor_category_is(into).valid_at(now: at).alive.first_or_create! opened_at: at
42
+
37
43
  end
38
44
 
39
45
  end unless Unidom::Common::Neglection.namespace_neglected? 'Unidom::Category::CategoryRollup'
@@ -0,0 +1,15 @@
1
+ shared_examples 'Unidom::Category::Categorizing' do |model_attributes, categorized, category|
2
+
3
+ before :each do
4
+ end
5
+
6
+ after :each do
7
+ end
8
+
9
+ context do
10
+
11
+ it_behaves_like 'assert_present!', described_class, :categorize!, [ categorized, { into: category, at: Time.now } ], [ { 0 => :categorized }, :into, :at ]
12
+
13
+ end
14
+
15
+ end
@@ -28,6 +28,11 @@ describe Unidom::Category::CategoryRollup, type: :model do
28
28
  it_behaves_like 'monomorphic scope', model_attributes, :ancestor_category_is, :ancestor_category
29
29
  it_behaves_like 'monomorphic scope', model_attributes, :descendant_category_is, :descendant_category
30
30
 
31
+ #it = Unidom::Category::Category.create! category_attributes.merge(code: 'ZC', name: 'Sub Category', abbreviation: 'SubCat')
32
+ #into = Unidom::Category::Category.create! category_attributes.merge(code: 'YC')
33
+
34
+ #it_behaves_like 'assert_present!', described_class, :roll_up!, [ it, { into: into, at: Time.now } ], [ { 0 => :it }, :into, :at ]
35
+
31
36
  end
32
37
 
33
38
  end
@@ -0,0 +1 @@
1
+ require 'rspec/models/unidom/category/categorizing_shared_examples'
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Category
3
- VERSION = '1.6.6'.freeze
3
+ VERSION = '1.6.7'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-category
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.6
4
+ version: 1.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2017-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -58,6 +58,7 @@ files:
58
58
  - db/migrate/20000302000000_create_unidom_categories.rb
59
59
  - db/migrate/20000303000000_create_unidom_category_rollups.rb
60
60
  - db/migrate/20000304000000_create_unidom_categorizings.rb
61
+ - lib/rspec/models/unidom/category/categorizing_shared_examples.rb
61
62
  - lib/rspec/models/unidom/category/categorizing_spec.rb
62
63
  - lib/rspec/models/unidom/category/category_rollup_spec.rb
63
64
  - lib/rspec/models/unidom/category/category_scheme_spec.rb
@@ -66,6 +67,7 @@ files:
66
67
  - lib/unidom/category.rb
67
68
  - lib/unidom/category/engine.rb
68
69
  - lib/unidom/category/models_rspec.rb
70
+ - lib/unidom/category/rspec_shared_examples.rb
69
71
  - lib/unidom/category/types_rspec.rb
70
72
  - lib/unidom/category/validators_rspec.rb
71
73
  - lib/unidom/category/version.rb