mv-mysql 2.2.0 → 2.2.1

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: ad87072c466331a2cc04a715c63f6fe32449162a
4
- data.tar.gz: 3c0e3915a9e967b58ce49425444b985f4aef2cda
3
+ metadata.gz: 89fbc77061d52d4aec55f6316b1d74352d3eabe5
4
+ data.tar.gz: 75c29454e1559330cb16e22b26ad0a1d5402892a
5
5
  SHA512:
6
- metadata.gz: dd8f63199d84fe2fda8881f660cce276fc22cadd93eba4ac555dd1e7425b2c790fcc1bb6883ef48eaa2a03a3fd35eba6c955b4404a0a36cc88ae25e98b802637
7
- data.tar.gz: d156d70cede830cfd14342e912b396e2a986d99d078582067f49a906ae6513e563e5fb9d058097f0f6a17926d8cbd1fe1b5eb4eee903a23d6e8c042d7bf078ee
6
+ metadata.gz: b0db6760c32bf4fadd34c4806fe11ea38ec567ad4fadaedbab61cdaef6865695bee95cd700fd7184a74b7cd31e769752e95ca33b3c8372e79dd634a68d7cec08
7
+ data.tar.gz: 76c29214bff9d89193459a1fecebb86edf101bf6151be90cd0ff033894bf78aa28854939256c80293de8c3c21d360472f55fa528f383cf54e2f54e074ed4a006
@@ -9,6 +9,7 @@ require 'mv/mysql/validation/length'
9
9
  require 'mv/mysql/validation/presence'
10
10
  require 'mv/mysql/validation/absence'
11
11
  require 'mv/mysql/validation/uniqueness'
12
+ require 'mv/mysql/validation/format'
12
13
  require 'mv/mysql/validation/custom'
13
14
 
14
15
  require 'mv/mysql/validation/builder/trigger/exclusion'
@@ -17,8 +18,11 @@ require 'mv/mysql/validation/builder/trigger/length'
17
18
  require 'mv/mysql/validation/builder/trigger/presence'
18
19
  require 'mv/mysql/validation/builder/trigger/absence'
19
20
  require 'mv/mysql/validation/builder/trigger/uniqueness'
21
+ require 'mv/mysql/validation/builder/trigger/format'
20
22
  require 'mv/mysql/validation/builder/trigger/custom'
21
23
 
24
+ require 'mv/mysql/validation/active_model_presenter/format'
25
+
22
26
  ActiveSupport.on_load(:mv_core) do
23
27
 
24
28
  #constraint builders
@@ -33,7 +37,8 @@ ActiveSupport.on_load(:mv_core) do
33
37
  :length => Mv::Mysql::Validation::Length,
34
38
  :presence => Mv::Mysql::Validation::Presence,
35
39
  :absence => Mv::Mysql::Validation::Absence,
36
- :uniqueness => Mv::Mysql::Validation::Uniqueness,
40
+ :uniqueness => Mv::Mysql::Validation::Uniqueness,
41
+ :format => Mv::Mysql::Validation::Format,
37
42
  :custom => Mv::Mysql::Validation::Custom
38
43
  )
39
44
 
@@ -45,6 +50,7 @@ ActiveSupport.on_load(:mv_core) do
45
50
  Mv::Mysql::Validation::Presence => Mv::Mysql::Validation::Builder::Trigger::Presence,
46
51
  Mv::Mysql::Validation::Absence => Mv::Mysql::Validation::Builder::Trigger::Absence,
47
52
  Mv::Mysql::Validation::Uniqueness => Mv::Mysql::Validation::Builder::Trigger::Uniqueness,
53
+ Mv::Mysql::Validation::Format => Mv::Mysql::Validation::Builder::Trigger::Format,
48
54
  Mv::Mysql::Validation::Custom => Mv::Mysql::Validation::Builder::Trigger::Custom
49
55
  )
50
56
 
@@ -55,7 +61,8 @@ ActiveSupport.on_load(:mv_core) do
55
61
  Mv::Mysql::Validation::Length => Mv::Core::Validation::ActiveModelPresenter::Length,
56
62
  Mv::Mysql::Validation::Presence => Mv::Core::Validation::ActiveModelPresenter::Presence,
57
63
  Mv::Mysql::Validation::Absence => Mv::Core::Validation::ActiveModelPresenter::Absence,
58
- Mv::Mysql::Validation::Uniqueness => Mv::Core::Validation::ActiveModelPresenter::Uniqueness
64
+ Mv::Mysql::Validation::Uniqueness => Mv::Core::Validation::ActiveModelPresenter::Uniqueness,
65
+ Mv::Mysql::Validation::Format => Mv::Mysql::Validation::ActiveModelPresenter::Format
59
66
  )
60
67
  end
61
68
 
@@ -0,0 +1,17 @@
1
+ module Mv
2
+ module Mysql
3
+ module Validation
4
+ module ActiveModelPresenter
5
+ class Format < Mv::Core::Validation::ActiveModelPresenter::Base
6
+ def option_names
7
+ super + [:with]
8
+ end
9
+
10
+ def validation_name
11
+ :format
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,34 @@
1
+ module Mv
2
+ module Mysql
3
+ module Validation
4
+ module Builder
5
+ class Format < Mv::Core::Validation::Builder::Base
6
+ delegate :with, to: :validation
7
+
8
+ def conditions
9
+ [{
10
+ statement: apply_allow_nil_and_blank(apply_with(column_reference)),
11
+ message: message
12
+ }]
13
+ end
14
+
15
+ protected
16
+
17
+ def db_value value
18
+ return "'#{value.source}'" if value.is_a?(Regexp)
19
+ return "'#{value.to_s}'" if value.is_a?(String)
20
+ raise Mv::Core::Error.new(table_name: table_name,
21
+ column_name: column_name,
22
+ validation_type: :inclusion,
23
+ options: { in: value },
24
+ error: "#{value.class} is not supported as :with value")
25
+ end
26
+
27
+ def apply_with stmt
28
+ "#{stmt} RLIKE #{db_value(with)}"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ require 'mv/mysql/validation/builder/format'
2
+ require 'mv/mysql/validation/builder/trigger/trigger_column'
3
+
4
+ module Mv
5
+ module Mysql
6
+ module Validation
7
+ module Builder
8
+ module Trigger
9
+ class Format < Mv::Mysql::Validation::Builder::Format
10
+ include TriggerColumn
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ module Mv
2
+ module Mysql
3
+ module Validation
4
+ class Format < Mv::Core::Validation::Base
5
+ attr_reader :with
6
+
7
+ validates :with, presence: true
8
+
9
+ def initialize(table_name, column_name, opts)
10
+ opts = { with: opts } unless opts.is_a?(Hash)
11
+
12
+ super(table_name, column_name, opts)
13
+
14
+ @with = opts.with_indifferent_access[:with]
15
+ end
16
+
17
+ def to_a
18
+ super + [with.to_s]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mv-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valeriy Prokopchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-28 00:00:00.000000000 Z
11
+ date: 2015-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -137,9 +137,12 @@ files:
137
137
  - lib/mv/mysql/constraint/builder/trigger.rb
138
138
  - lib/mv/mysql/railtie.rb
139
139
  - lib/mv/mysql/validation/absence.rb
140
+ - lib/mv/mysql/validation/active_model_presenter/format.rb
141
+ - lib/mv/mysql/validation/builder/format.rb
140
142
  - lib/mv/mysql/validation/builder/trigger/absence.rb
141
143
  - lib/mv/mysql/validation/builder/trigger/custom.rb
142
144
  - lib/mv/mysql/validation/builder/trigger/exclusion.rb
145
+ - lib/mv/mysql/validation/builder/trigger/format.rb
143
146
  - lib/mv/mysql/validation/builder/trigger/inclusion.rb
144
147
  - lib/mv/mysql/validation/builder/trigger/length.rb
145
148
  - lib/mv/mysql/validation/builder/trigger/mysql_datetime_values.rb
@@ -148,6 +151,7 @@ files:
148
151
  - lib/mv/mysql/validation/builder/trigger/uniqueness.rb
149
152
  - lib/mv/mysql/validation/custom.rb
150
153
  - lib/mv/mysql/validation/exclusion.rb
154
+ - lib/mv/mysql/validation/format.rb
151
155
  - lib/mv/mysql/validation/inclusion.rb
152
156
  - lib/mv/mysql/validation/length.rb
153
157
  - lib/mv/mysql/validation/mysql_error_message_restrictions.rb