require_infector 0.2.0 → 0.3.0
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 +4 -4
- data/lib/require_infector/version.rb +1 -1
- data/lib/require_infector.rb +26 -23
- data/require_infector.gemspec +0 -2
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5eb95097d981ce961d0e66be4a1ec32915d1ba5f
|
4
|
+
data.tar.gz: 38289dd86239157fb1803e93d7183d522910b9a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41c1542988ecaa27f040bc39ac569c983dc734aae6c52432e9a8a1e8a4740860ede075c99663d201335c7930a0590576a6b18d0216bd118ed8565080af074011
|
7
|
+
data.tar.gz: 9d97332c91889038720c86126edbc11023b6d30b93df2326fd7cb5b66b2636edb0f0f82e9c6381171443aeaf0896a73dfc284934d166cccc0b5a4d30d31c6c3d
|
data/lib/require_infector.rb
CHANGED
@@ -1,33 +1,36 @@
|
|
1
1
|
require 'require_infector/version'
|
2
2
|
|
3
3
|
module RequireInfector
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
4
|
+
def self.included(base) # :nodoc:
|
5
|
+
base.class_eval do
|
6
|
+
# Method include patches
|
7
|
+
# @param plugin_name [String] the plugin name
|
8
|
+
# @param resources [String] names of resources which will need patching
|
9
|
+
# @param options [Hash] options
|
10
|
+
# @example
|
11
|
+
# Rails.config.to_prepare do
|
12
|
+
# require_infector 'awesome_plugin', ['user', 'issue', 'user_controller', 'issue_helper']
|
13
|
+
# end
|
14
|
+
def require_infector(plugin_name, resources, options = {})
|
15
|
+
default_options = {
|
16
|
+
dir: 'infectors',
|
17
|
+
prefix: nil,
|
18
|
+
postfix: nil
|
19
|
+
}
|
18
20
|
|
19
|
-
|
21
|
+
options = default_options.merge options
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
resources.to_a.each do |resource|
|
24
|
+
require_dependency resource unless options[:skip_require_dependency]
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
infector_name = [options[:prefix], resource, options[:postfix]].select(&:present?).join('_')
|
27
|
+
resource_patch = [plugin_name, options[:dir], infector_name].select(&:present?).join('/')
|
28
|
+
resource_constant, resource_patch_constant = [resource, resource_patch].map(&:camelize).map(&:constantize)
|
27
29
|
|
28
|
-
|
30
|
+
resource_constant.send(:include, resource_patch_constant) unless resource_constant.included_modules.include? resource_patch_constant
|
31
|
+
end
|
32
|
+
end
|
29
33
|
end
|
30
|
-
end
|
31
34
|
end
|
32
35
|
|
33
|
-
|
36
|
+
Kernel.send(:include, ::RequireInfector) unless Kernel.included_modules.include? ::RequireInfector
|
data/require_infector.gemspec
CHANGED
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: require_infector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Shipiev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rails
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
11
|
+
date: 2016-04-09 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
27
13
|
description: It's using for patching
|
28
14
|
email:
|
29
15
|
- roman@shipiev.pro
|