active_module 0.1.5 → 0.1.6

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: 31dff5b0baa89fa4624fc7b974f5261d483cdaf48f7b7fe9a5d1f0a7f256d7fa
4
- data.tar.gz: fbb6655e9de6c118ee99e199ed4ce78441cd55d151d839f7bf0040fa48519df5
3
+ metadata.gz: 1473d88ff3d53e8948747dc7827ad2836478a0c6db139c54e11f2a96df58e758
4
+ data.tar.gz: 045e7b7689734cf7c98654ec1283a747063d1defba78c47e3efbd115c5046675
5
5
  SHA512:
6
- metadata.gz: 0ed009054605141713db46f3d768dc044f42d5bc8ac479ae8004408eaa9ad4657694d661299ba600868975bf7f254da00315d64564d1dfcd96a942ad6622dada
7
- data.tar.gz: 4053a0f71c9b2b8db76c1f7637a989646c7b8ad531fa5da680c9795e61ec967fe9db13c74b566350039c13cdaf16d1a0c80f58e04944650e5e2c2f78d73a017f
6
+ metadata.gz: 67321659d14a0aff48e5917e2242d42773dbc6f86a8fa8cef935956bbda4717858128a405264ff39cde9bd06e223ee266b08a4f4b07a62f600ee3b6de8c54714
7
+ data.tar.gz: bf7305eabb2c4d81e0514542c7172e440aaf5b17ea5d4bf732705100f8a92cc01f772aae9b3ba0f864c575f1040626d7730f5831d7d7889aec0ed88980f5271a
data/README.md CHANGED
@@ -17,6 +17,35 @@ This is a very generic mechanism that enables many possible utilizations, for in
17
17
 
18
18
  You can find examples of these in [Usage -> Examples :](#Examples)
19
19
 
20
+ ## TL;DR
21
+
22
+ Declare module attributes like this:
23
+ ```ruby
24
+ class MyARObject < ActiveRecord::Base
25
+ attribute :module_field,
26
+ :active_module,
27
+ possible_modules: [MyModule1, MyClass, Nested::Module]
28
+ end
29
+ ```
30
+
31
+ Assign them like this:
32
+ ```ruby
33
+ object.module_field = Nested::Module
34
+ object.module_field = :Module
35
+ object.module_field = "Module"
36
+ object.module_field #=> Nested::Module:Module
37
+ ```
38
+
39
+ And compare them like this (optional):
40
+ ```ruby
41
+ module MyNameSpace
42
+ using ActiveModule::Comparison
43
+
44
+ object.module_field =~ :Module1
45
+ object.module_field =~ "Module1"
46
+ end
47
+ ```
48
+
20
49
  ## Installation
21
50
 
22
51
  Add to your gemfile - and if you are using rails - that's all you need:
@@ -54,7 +83,7 @@ class MyARObject < ActiveRecord::Base
54
83
  module MyModule1; end
55
84
  module MyModule2; end
56
85
  class MyClass;
57
- module Module1; end
86
+ module MyModule1; end
58
87
  end
59
88
  end
60
89
  ```
@@ -63,13 +92,13 @@ You can make the field refer to one of these modules/classes like this:
63
92
  class MyARObject < ActiveRecord::Base
64
93
  attribute :module_field,
65
94
  :active_module,
66
- possible_modules: [MyModule1, MyModule2, MyClass, MyClass::Module1]
95
+ possible_modules: [MyModule1, MyModule2, MyClass, MyClass::MyModule1]
67
96
  end
68
97
  ```
69
98
  And this is it! Easy!<br>
70
99
 
71
100
  ### Assigning and querying module attributes
72
- Now you can use this attribute in many handy ways:
101
+ Now you can use this attribute in many handy ways!
73
102
  <br>
74
103
  <br>
75
104
  For instance, you may refer to it using module literals:
@@ -118,10 +147,12 @@ only available within the namespace that includes the refinement.
118
147
  ```ruby
119
148
  module YourClassOrModuleThatWantsToCompare
120
149
  using ActiveModule::Comparison
150
+
121
151
  def method_that_compares
122
152
  my_ar_object.module_field =~ :MyModule1
123
153
  end
124
154
  end
155
+ ```
125
156
 
126
157
  ## Examples
127
158
 
@@ -7,16 +7,12 @@ module ActiveModule
7
7
 
8
8
  def =~(other)
9
9
  case other
10
- when nil
11
- false
12
- when ::Module
13
- super(other)
14
10
  when ::String
15
11
  (@possible_names ||= possible_names).include?(other)
16
12
  when ::Symbol
17
13
  (@possible_names ||= possible_names).include?(other.to_s)
18
14
  else
19
- false
15
+ self == other
20
16
  end
21
17
  end
22
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveModule
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_module
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Rolo