mongoid-enum_attribute 0.1.0 → 1.0.0

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
  SHA256:
3
- metadata.gz: 2e0c939d3c2c2a5677c00e67b188c2f1121a74b514481a26850ae44132d8b58b
4
- data.tar.gz: 7a81b66ee67d78377af402636a31be30594f3558103fc9b4868b5373f6aba3ee
3
+ metadata.gz: 672283b84f349e0f148fe27f108986935c5b56919a571c306ed604c34ba05131
4
+ data.tar.gz: 2e0bc5be5274b6effb9975b802dea9abe6f1bdc95296da8e31877499dd57c5ce
5
5
  SHA512:
6
- metadata.gz: eb7c9892acf4df44ea84e40019a7db574fe5ce5638707d621e527ca456655d4dede81f56c9c56d8ea6bad1aebf675bf34bd89d2891512fff3759a9f2ab3033cc
7
- data.tar.gz: b799c8b3c833c15751ae2e5f8f792232717ebea7a895d63bfbb9b9ff23cce1c478d4ffe415f83d02ce516e970fb087608419b7098dde82962906c70559717fda
6
+ metadata.gz: 5dbe677cfbd240bbe3523c6c3ce401f19a488214303d7e32712445b9772c2c2d522001762cb41768da8d7cc23b4665daae966a492a9209b82ed3acd832ae836c
7
+ data.tar.gz: 34c01c435fed78d549d1140bcfae91fb9c70237e1c886fdc5d22a22cf7e21f93314308534835788dcb350b6b8ebe0e66aad8e8d2b7f36936923f1b3fbe35a45b
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.0.0
4
+
5
+ * switch from deprecated Symbol type to string, [PR #1](https://github.com/tomasc/mongoid-enum_attribute/pull/1), thanks [@romansavrulin](https://github.com/romansavrulin)
6
+
3
7
  ## 0.1.0
4
8
 
5
9
  * first release
data/README.md CHANGED
@@ -25,7 +25,7 @@ Or install it yourself as:
25
25
  ```ruby
26
26
  class Payment
27
27
  include Mongoid::Document
28
- include Mongoid::Enum
28
+ include Mongoid::EnumAttribute
29
29
 
30
30
  enum :status, [:pending, :approved, :declined]
31
31
  end
@@ -101,4 +101,4 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
101
101
 
102
102
  ## Contributing
103
103
 
104
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/mongoid-enum_attribute.
104
+ Bug reports and pull requests are welcome on GitHub at https://github.com/tomasc/mongoid-enum_attribute.
@@ -8,11 +8,10 @@ module Mongoid
8
8
 
9
9
  module ClassMethods
10
10
  def enum(name, values, options = {})
11
- field_name = "#{Mongoid::EnumAttribute.configuration.field_name_prefix}#{name}"
12
11
  options = default_options(values).merge(options)
13
12
 
14
13
  set_values_constant(name, values)
15
- create_field(field_name, options)
14
+ field_name = create_field(name, options)
16
15
 
17
16
  create_validations(field_name, values, options)
18
17
  define_value_scopes_and_accessors(name, field_name, values, options)
@@ -27,7 +26,9 @@ module Mongoid
27
26
  required: true,
28
27
  validate: true,
29
28
  prefix: Mongoid::EnumAttribute.configuration.prefix,
30
- suffix: Mongoid::EnumAttribute.configuration.suffix
29
+ suffix: Mongoid::EnumAttribute.configuration.suffix,
30
+ field_name_prefix: Mongoid::EnumAttribute.configuration.field_name_prefix,
31
+ field_name: nil
31
32
  }
32
33
  end
33
34
 
@@ -36,9 +37,12 @@ module Mongoid
36
37
  const_set(const_name, values)
37
38
  end
38
39
 
39
- def create_field(field_name, options)
40
- type = options[:multiple] && Array || Symbol
40
+ def create_field(name, options)
41
+ type = options[:multiple] && Array || String
42
+ field_name = (options[:field_name] || "#{options[:field_name_prefix]}#{name}").to_s
43
+ raise "enum name #{name} and field_name option cannot be equal!" if name.to_s == field_name.to_s
41
44
  field field_name, type: type, default: options[:default]
45
+ field_name
42
46
  end
43
47
 
44
48
  def create_validations(field_name, values, options)
@@ -53,7 +57,7 @@ module Mongoid
53
57
  elsif options[:validate]
54
58
  validates(
55
59
  field_name,
56
- inclusion: { in: values.map(&:to_sym) },
60
+ inclusion: { in: values.map(&:to_s) },
57
61
  allow_nil: !options[:required]
58
62
  )
59
63
  end
@@ -100,7 +104,7 @@ module Mongoid
100
104
 
101
105
  def define_string_field_accessor(name, field_name)
102
106
  class_eval "def #{name}=(val) self.write_attribute(:#{field_name}, val && val.to_sym || nil) end"
103
- class_eval "def #{name}() self.send(:#{field_name}) end"
107
+ class_eval "def #{name}() self.send(:#{field_name}).to_sym end"
104
108
  end
105
109
 
106
110
  def define_array_accessor(accessor_name, field_name, value)
@@ -109,7 +113,7 @@ module Mongoid
109
113
  end
110
114
 
111
115
  def define_string_accessor(accessor_name, field_name, value)
112
- class_eval "def #{accessor_name}?() self.#{field_name} == :#{value} end"
116
+ class_eval "def #{accessor_name}?() self.#{field_name}.to_sym == :#{value} end"
113
117
  class_eval "def #{accessor_name}!() update_attributes! :#{field_name} => :#{value} end"
114
118
  end
115
119
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module EnumAttribute
3
- VERSION = "0.1.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency 'mongoid', '>= 5', '< 8'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
24
+ spec.add_development_dependency "bundler", ">= 1.16"
25
25
  spec.add_development_dependency "minitest", "~> 5.0"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "database_cleaner"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-enum_attribute
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomáš Celizna
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-03 00:00:00.000000000 Z
11
+ date: 2019-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -34,14 +34,14 @@ dependencies:
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.16'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.16'
47
47
  - !ruby/object:Gem::Dependency
@@ -124,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.7.3
127
+ rubygems_version: 3.0.3
129
128
  signing_key:
130
129
  specification_version: 4
131
130
  summary: Take on ActiveRecord::Enum in Mongoid