unidom-action 0.2 → 0.3

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: b54bc8a3b6ef4de8f7a72449d620dacae0c965fc
4
- data.tar.gz: 1b721255cf227a7cbe41bad0307f2b4e0e650e6f
3
+ metadata.gz: 380407c921dd3d237c8a7c398f30d444996dd869
4
+ data.tar.gz: 10ee02a67e68a196af14a6ac391b25c21266ade5
5
5
  SHA512:
6
- metadata.gz: 570421c1f8e25690cc86d16a2774edce1481f58824ae8de62ba7c9a8f461218ac647c43455c1246b7895708309cccf91d0e264e331117920999a164fb45492ce
7
- data.tar.gz: 9eb4f087355335bccbab24e64bab2859a3358cb19f235963fefe7454efd25842d4bd196ec17e0e2187325547e13d1d0abec9900d136d3bc2807a17cfb20e65f7
6
+ metadata.gz: 90c25d3596aaf81d443bb7129242db938ed502e9dc628e7be8394567801d9d7f2bf21520b756b7366404f5e68ebb4b3554ff9721a31202353b7d297f6b2f7d60
7
+ data.tar.gz: 8d3f620b72ecc02567d220469a56ae4295a28b30bcf5efc8631a4d2badc3b8c3efe49a465d048adb9a70447ed48827319eab492741dd397ba1ca4463ee35ef54
data/README.md CHANGED
@@ -27,9 +27,18 @@ reason = Unidom::Action::Reason.create! activity_code: 'SRRR', name: 'broken', d
27
27
  # SRRR = Shipment Receipt Rejection Reason
28
28
 
29
29
  user = Unidom::Visitor::User.create!
30
+
31
+ # Create/Update/Delete the person
30
32
  person = Unidom::Party::Person.create! name: 'Tim'
33
+ acting = Unidom::Action::Acting.create! actor_visitor: user, actor_party: person, reason: reason, acted: person, from_value: {}, thru_value: { name: 'Time' }
31
34
 
35
+ # Update the state of the person
36
+ person.state = 'R'
37
+ person.save!
32
38
  transition = Unidom::Action::StateTransition.create! transitor_visitor: user, transitor_party: person, reason: reason, subject: person, from_state: 'C', thru_state: 'R'
39
+
40
+ # Soft destroy the person
41
+ person.soft_destroy
33
42
  obsolescence = Unidom::Action::Obsolescence.create! obsolescer_visitor: user, obsolescer_party: person, reason: reason, obsolesced: person
34
43
  # The reason could be nil.
35
44
  ```
@@ -0,0 +1,17 @@
1
+ # Acting 是行为记录。
2
+ # #reason 是原因。
3
+ # #acted 是被操作的对象。
4
+ # #action_code 是行为代码,C: create, R: read, U: update, D: destroy。
5
+
6
+ class Unidom::Action::Acting < Unidom::Action::ApplicationRecord
7
+
8
+ self.table_name = 'unidom_actings'
9
+
10
+ include Unidom::Common::Concerns::ModelExtension
11
+
12
+ belongs_to :actor_visitor, polymorphic: true
13
+ belongs_to :actor_party, polymorphic: true
14
+ belongs_to :acted, polymorphic: true
15
+ belongs_to :reason, class_name: 'Unidom::Action::Reason'
16
+
17
+ end
@@ -0,0 +1,37 @@
1
+ class CreateUnidomActings < ActiveRecord::Migration
2
+
3
+ def change
4
+
5
+ create_table :unidom_actings, id: :uuid do |t|
6
+
7
+ t.references :actor_visitor, type: :uuid, null: false,
8
+ polymorphic: { null: false, default: '', limit: 200 }
9
+ t.references :actor_party, type: :uuid, null: false,
10
+ polymorphic: { null: false, default: '', limit: 200 }
11
+ t.references :acted, type: :uuid, null: false,
12
+ polymorphic: { null: false, default: '', limit: 200 }
13
+ t.references :reason, type: :uuid, null: true
14
+
15
+ t.column :action_code, 'char(1)', null: false, default: 'C'
16
+
17
+ t.jsonb :from_value, null: false, default: {}
18
+ t.jsonb :thru_value, null: false, default: {}
19
+
20
+ t.column :state, 'char(1)', null: false, default: 'C'
21
+ t.datetime :opened_at, null: false, default: Time.utc(1970)
22
+ t.datetime :closed_at, null: false, default: Time.utc(3000)
23
+ t.boolean :defunct, null: false, default: false
24
+ t.jsonb :notation, null: false, default: {}
25
+
26
+ t.timestamps null: false
27
+
28
+ end
29
+
30
+ add_index :unidom_actings, :actor_visitor_id
31
+ add_index :unidom_actings, :actor_party_id
32
+ add_index :unidom_actings, :acted_id
33
+ add_index :unidom_actings, :reason_id
34
+
35
+ end
36
+
37
+ end
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Action
3
- VERSION = '0.2'.freeze
3
+ VERSION = '0.3'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-action
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-28 00:00:00.000000000 Z
11
+ date: 2016-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -43,6 +43,7 @@ files:
43
43
  - app/helpers/unidom/action/application_helper.rb
44
44
  - app/jobs/unidom/action/application_job.rb
45
45
  - app/mailers/unidom/action/application_mailer.rb
46
+ - app/models/unidom/action/acting.rb
46
47
  - app/models/unidom/action/application_record.rb
47
48
  - app/models/unidom/action/obsolescence.rb
48
49
  - app/models/unidom/action/reason.rb
@@ -50,6 +51,7 @@ files:
50
51
  - app/views/layouts/unidom/action/application.html.erb
51
52
  - config/routes.rb
52
53
  - db/migrate/20000501000000_create_unidom_reasons.rb
54
+ - db/migrate/20000510000000_create_unidom_actings.rb
53
55
  - db/migrate/20000511000000_create_unidom_state_transitions.rb
54
56
  - db/migrate/20000512000000_create_unidom_obsolescences.rb
55
57
  - lib/tasks/action_tasks.rake