unidom-common 0.4 → 0.5

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: d23c262b1fe69ebda87106043fb0a586acdd0800
4
- data.tar.gz: e6d24fc0fa119ba363ec4aa0125dffc15d13c74f
3
+ metadata.gz: 25ba748b7b6950df973d55ff65080aa52a67f363
4
+ data.tar.gz: 21dda98526536a16ea2e3845212aa260949ef031
5
5
  SHA512:
6
- metadata.gz: 81cdc0a4232129d75c1c458ebbe8050552bed642ed89e3632a7301ea184c08238b09e40fd8b44204600153a542149643a67252cdcabf73ab0c6964d7b79ff22f
7
- data.tar.gz: d7e7a7e5d864e38e212de73466d16a957f7367d92e9dafc1d96fb73dcbe64286bec1fa5225e8ec63e7f3d86855a2115fdac727a701d0736d810fdd15fac081b2
6
+ metadata.gz: a356a948f45a855167608561c6a618b25eff250a5dee6a98607be244b3209e9a838ed0260eb8fc146c82d358a856f60fa3dd2ad610592cbae9583304f8688d24
7
+ data.tar.gz: 7586b6951837272f2aec8bf76d36176add24c86e1319c1192b857cbb83c96dc7239d40cb027993d964511187699eaf46d6a6cb53d537eec6bb9f1000c6cb3db5
data/README.md CHANGED
@@ -42,6 +42,24 @@ team.projects.valid_during('2015-01-01'..'2015-12-31').dead
42
42
  Project.included_by([ id_1, id_2 ]).excluded_by id_3
43
43
  ```
44
44
 
45
+ ## No-SQL Columns
46
+ ```ruby
47
+ class Project < ActiveRecord::Base
48
+
49
+ include Unidom::Common::Concerns::ModelExtension
50
+
51
+ validates :creator_comment, allow_blank: true, length: { in: 2..200 }
52
+ validates :last_updater_comment, allow_blank: true, length: { in: 2..200 }
53
+
54
+ notation_column :creator_comment, :last_updater_comment
55
+
56
+ end
57
+
58
+ project = Project.new
59
+ project.creator_comment = 'My first project.' # Stored in project.notation['columns']['creator_comment']
60
+ project.valid? # true
61
+ ```
62
+
45
63
  ## ActiveRecord Migration Naming Convention
46
64
  ### Domain Models (200YMMDDHHMMSS)
47
65
  * unidom-common: 200001DDHHMMSS
@@ -125,6 +125,20 @@ module Unidom
125
125
  model.respond_to?(:id) ? model.id : model
126
126
  end
127
127
 
128
+ def notation_column(*names)
129
+ names.each do |name|
130
+ instance_eval do
131
+ define_method(name) do
132
+ notation.try(:[], 'columns').try(:[], name)
133
+ end
134
+ define_method("#{name}=") do |value|
135
+ notation['columns'] ||= {}
136
+ notation['columns'][name] = value
137
+ end
138
+ end
139
+ end
140
+ end
141
+
128
142
  end
129
143
 
130
144
  end
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Common
3
- VERSION = '0.4'.freeze
3
+ VERSION = '0.5'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-common
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
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-03-12 00:00:00.000000000 Z
11
+ date: 2016-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails