active_module 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -6
- data/lib/active_module/railtie.rb +9 -0
- data/lib/active_module/version.rb +1 -1
- data/lib/active_module.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67a15729498969e40f9d98768361af65053734b1250a016ba6fd5a4e9a865255
|
4
|
+
data.tar.gz: f45cbf9dee684f2642c2191d3968fecc7dd9f5b8507339972b478b3a901facbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f904500067b63fa236787e405e4e04a012b55a82c89da3e8276cd3249d9cb566c461d1e17b9e21dafc46a02a45a4b9d0bc45ea5a052bb071a700646d111474c
|
7
|
+
data.tar.gz: 856d1a37309c9a142cf300342707c71dbc91526e6ea221a339544497323afbd2229a59e62e2ca73ca674ed9cab62bb95f7638af001de5ecc6bcfb475009c5418
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ Add to your gemfile:
|
|
25
25
|
gem 'active_module', "~>0.1"
|
26
26
|
```
|
27
27
|
|
28
|
-
|
28
|
+
If you are not using rails, just issue this command after loading active record
|
29
29
|
|
30
30
|
```ruby
|
31
31
|
ActiveModule.register!
|
@@ -109,9 +109,9 @@ my_ar_object.module_field = "MyClass::MyModule1"
|
|
109
109
|
my_ar_object.module_field #=> MyARObject::MyClass::MyModule::Module
|
110
110
|
```
|
111
111
|
|
112
|
-
|
112
|
+
## Examples
|
113
113
|
|
114
|
-
|
114
|
+
### Strategy Pattern (composition-based polymorphism)
|
115
115
|
|
116
116
|
[The Strategy design pattern](https://en.wikipedia.org/wiki/Strategy_pattern) allows composition based polymorphism. This enables runtime polymorphism (by changing the strategy in runtime),
|
117
117
|
and multiple-polymorphism (by composing an object of multiple strategies).
|
@@ -147,7 +147,7 @@ MyARObject.create!(module_field: :Strategy1).run_strategy! #=> "strategy2 called
|
|
147
147
|
```
|
148
148
|
|
149
149
|
|
150
|
-
|
150
|
+
### Rapid prototyping static domain objects
|
151
151
|
|
152
152
|
```ruby
|
153
153
|
# Provider domain Object
|
@@ -238,7 +238,7 @@ end
|
|
238
238
|
```
|
239
239
|
|
240
240
|
|
241
|
-
|
241
|
+
### Static configuration management
|
242
242
|
|
243
243
|
This example is not much different than previous one. It however stresses that the module we
|
244
244
|
refer to might be used as a source of configuration parameters that change the behaviour of
|
@@ -289,7 +289,7 @@ end
|
|
289
289
|
MyARObject.create!(provider_config: :Ebay).load_page!
|
290
290
|
```
|
291
291
|
|
292
|
-
|
292
|
+
### Rich Java/C#-like enums
|
293
293
|
This example is only to show the possibility.
|
294
294
|
This would probably benefit from using a meta programming abstraction
|
295
295
|
and there are already gems with this kind of functionality such as `enumerizable`
|
data/lib/active_module.rb
CHANGED
@@ -4,6 +4,7 @@ require_relative "active_module/version"
|
|
4
4
|
require_relative "active_module/base"
|
5
5
|
require_relative "active_module/invalid_module_value"
|
6
6
|
require_relative "active_module/register"
|
7
|
+
require "active_module/railtie" if defined?(Rails::Railtie)
|
7
8
|
|
8
9
|
module ActiveModule
|
9
10
|
module_function
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_module
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Rolo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/active_module/invalid_module_value.rb
|
62
62
|
- lib/active_module/module_refinement.rb
|
63
63
|
- lib/active_module/modules_index.rb
|
64
|
+
- lib/active_module/railtie.rb
|
64
65
|
- lib/active_module/register.rb
|
65
66
|
- lib/active_module/version.rb
|
66
67
|
homepage: https://github.com/pedrorolo/active_module
|