enum_attributes_validation 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 42d2adee0b850e2f791721d188b738c2f5fc76a9
4
+ data.tar.gz: 403c062de6b05496ab0418541c65b61cf20aebd4
5
+ SHA512:
6
+ metadata.gz: 62a8457498e1446b5c10fa9e22f6e501ea6a55d0ec4cc89c39cbb2d8f5208744dcd33b5694af7ffc712d75b99b290f7b27afff33a11e7ddf3860b26b237a1280
7
+ data.tar.gz: b4e2b43b301d286fc0e44646fdea8f89a601922bfbcc700d11740f2ac2b7f1fbcc7d0a5cef240810d75d24ab2286ae541ad3325e5669e3c1949c14640b268b36
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "enum_attributes_validation"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,46 @@
1
+ require "enum_attributes_validation/version"
2
+ require 'active_support'
3
+ require 'active_record'
4
+
5
+ module EnumAttributesValidation
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ attr_writer :enum_invalid_attributes
10
+ def enum_invalid_attributes
11
+ @enum_invalid_attributes ||= {}
12
+ end
13
+ validate :check_enum_invalid_attributes
14
+
15
+ private
16
+
17
+ def check_enum_invalid_attributes
18
+ if enum_invalid_attributes.present?
19
+ enum_invalid_attributes.each do |key, value|
20
+ errors.add(key, "invalid #{value}")
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ class_methods do
27
+ def validate_enum_attributes(*attributes)
28
+ attributes.each do |attribute|
29
+ string_attribute = attribute.to_s
30
+
31
+ define_method (string_attribute+"=").to_sym do |argument|
32
+ string_argument = argument.to_s
33
+ self[string_attribute] = string_argument if User.send(string_attribute.pluralize).keys.include?(string_argument)
34
+ self.enum_invalid_attributes[attribute] = string_argument unless User.send(string_attribute.pluralize).keys.include?(string_argument)
35
+ end
36
+ end
37
+ end
38
+
39
+ def validate_enum_attribute(*attributes)
40
+ self.validate_enum_attributes(*attributes)
41
+ end
42
+ end
43
+ end
44
+
45
+ # include the extension in active record
46
+ ActiveRecord::Base.send(:include, EnumAttributesValidation)
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: enum_attributes_validation
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Cristi Stefan
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-11-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Enum Attributes Validation provides validation functionality for enum
42
+ attributes in models.
43
+ email:
44
+ - cristi.r.stefan@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - bin/console
50
+ - bin/setup
51
+ - lib/enum_attributes_validation.rb
52
+ homepage: https://github.com/CristiRazvi/enum_attributes_validation
53
+ licenses:
54
+ - MIT
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.6.8
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: Validate model enum attributes
76
+ test_files: []