rubyenum 0.0.4 → 0.0.5

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: 9c8c35f0eefaea3a69f72e056fa555a9b1179902
4
- data.tar.gz: 8371b1ce5445c3f3878a6860a21d0955e5392b57
3
+ metadata.gz: 9be57dd23500820447c6ba527653b335d00aa6a8
4
+ data.tar.gz: 5987ffb1b8ed836e8e58136bd727c45694cc9761
5
5
  SHA512:
6
- metadata.gz: 32fdc4390bf0280cf4cee4df923f8dd83555a3f8f5d3c5c683cef824862cd2370953faaeb95cd8b9bcaeabab04acb80fd637b79861862bead9ecc0031df5650b
7
- data.tar.gz: db8f3d8ad90967b1316ecbbe62ff926352477e9767ae5b8854d2a6601a57f3ef2dbe47d7313be5622760701749914fa4077efbb0c054374aa9c56469df6e55a7
6
+ metadata.gz: 55c855670afc22991c3208e691e156405b0c15068595c478ff129dc05621a6dfedf86fb6b1a023c0e073fd6edfa534ae0295679198f0eb3ba298bd78e089c82b
7
+ data.tar.gz: 13dee29c65fa2996e7a470e14b03258861c011c423e0f403f2aa8fde79d88961d2d3404d88c3aba84cf63d3628c499e0a40ea001a9192c24482f0bf2883dd931
@@ -5,27 +5,26 @@ module RubyEnum
5
5
 
6
6
  class Base
7
7
 
8
- @@all = []
9
- @@fields = []
10
-
11
8
  attr_reader :name
12
9
 
13
10
  private_class_method :new
14
11
 
15
12
  def self.all
16
- @@all
13
+ class_variable_get(:"@@all")
17
14
  end
18
15
 
19
16
  def self.get_fields
20
- @@fields
17
+ const_get("FIELDS")
21
18
  end
22
19
 
23
20
  def self.fields(*args)
21
+ class_variable_set(:"@@all", [])
22
+ fields = []
24
23
  args.each do |argument|
25
- @@fields << argument
24
+ fields << argument
26
25
  define_singleton_method("from_#{argument.to_s}") do |value|
27
26
  item_to_return = nil
28
- @@all.each do |item|
27
+ class_variable_get(:"@@all").each do |item|
29
28
  if item.send(argument) == value
30
29
  item_to_return = item
31
30
  break
@@ -34,6 +33,7 @@ module RubyEnum
34
33
  item_to_return
35
34
  end
36
35
  end
36
+ const_set("FIELDS", fields)
37
37
  end
38
38
 
39
39
  def self.value_of(symbol)
@@ -49,7 +49,7 @@ module RubyEnum
49
49
  end
50
50
  enumObj.add_attribute(get_fields[i], val)
51
51
  end
52
- @@all << enumObj
52
+ class_variable_get(:"@@all") << enumObj
53
53
  end
54
54
 
55
55
  def initialize(name)
@@ -65,18 +65,17 @@ module RubyEnum
65
65
 
66
66
 
67
67
 
68
+
68
69
  end
69
70
 
70
71
  module Associations
71
72
 
72
73
  # let ActiveRecord define these if using rails
73
74
  def create_helper_methods
74
- unless respond_to? :read_attribute
75
+ unless self.new.respond_to? :read_attribute
75
76
  define_method(:read_attribute) do |name|
76
77
  instance_variable_get(:"@#{name}")
77
78
  end
78
- end
79
- unless respond_to? :write_attribute
80
79
  define_method(:write_attribute) do |name, value|
81
80
  instance_variable_set(:"@#{name}", value)
82
81
  end
@@ -1,3 +1,3 @@
1
1
  module Rubyenum
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyenum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - georgemayer