dependency_injection-rails 0.1.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 +7 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +89 -0
- data/README.md +42 -0
- data/dependency_injection-rails.gemspec +20 -0
- data/lib/dependency_injection_rails.rb +15 -0
- data/lib/dependency_injection_rails/controllers/helpers.rb +26 -0
- data/lib/dependency_injection_rails/version.rb +3 -0
- metadata +78 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 674d7489d75122100c8beff421c2c09b382976c3
|
4
|
+
data.tar.gz: 1016d99b50ce37364fbc115e9c39fc64858fcacd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 824870110853ec667f85d7e7ac875a9445b84c77981d2f7cd7aa69b8a6a6659bab59152cd304a664e7719b3081e56c1c0f97498f68249b62d832e2b6cfca7513
|
7
|
+
data.tar.gz: 70e0ac721691a85710c111dd9f88d49d7c82614b8ac2fb7b312ca5acba6834382b34fa3a18ff5dcffeeb0a2f9ec53fe890c1dd3c170cf6788c1de43d90738339
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
dependency_injection-rails (0.1.0)
|
5
|
+
dependency_injection (~> 0.4.1)
|
6
|
+
rails
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
actionmailer (4.0.3)
|
12
|
+
actionpack (= 4.0.3)
|
13
|
+
mail (~> 2.5.4)
|
14
|
+
actionpack (4.0.3)
|
15
|
+
activesupport (= 4.0.3)
|
16
|
+
builder (~> 3.1.0)
|
17
|
+
erubis (~> 2.7.0)
|
18
|
+
rack (~> 1.5.2)
|
19
|
+
rack-test (~> 0.6.2)
|
20
|
+
activemodel (4.0.3)
|
21
|
+
activesupport (= 4.0.3)
|
22
|
+
builder (~> 3.1.0)
|
23
|
+
activerecord (4.0.3)
|
24
|
+
activemodel (= 4.0.3)
|
25
|
+
activerecord-deprecated_finders (~> 1.0.2)
|
26
|
+
activesupport (= 4.0.3)
|
27
|
+
arel (~> 4.0.0)
|
28
|
+
activerecord-deprecated_finders (1.0.3)
|
29
|
+
activesupport (4.0.3)
|
30
|
+
i18n (~> 0.6, >= 0.6.4)
|
31
|
+
minitest (~> 4.2)
|
32
|
+
multi_json (~> 1.3)
|
33
|
+
thread_safe (~> 0.1)
|
34
|
+
tzinfo (~> 0.3.37)
|
35
|
+
arel (4.0.2)
|
36
|
+
atomic (1.1.15)
|
37
|
+
builder (3.1.4)
|
38
|
+
dependency_injection (0.4.1)
|
39
|
+
activesupport
|
40
|
+
erubis (2.7.0)
|
41
|
+
hike (1.2.3)
|
42
|
+
i18n (0.6.9)
|
43
|
+
mail (2.5.4)
|
44
|
+
mime-types (~> 1.16)
|
45
|
+
treetop (~> 1.4.8)
|
46
|
+
mime-types (1.25.1)
|
47
|
+
minitest (4.7.5)
|
48
|
+
multi_json (1.9.0)
|
49
|
+
polyglot (0.3.4)
|
50
|
+
rack (1.5.2)
|
51
|
+
rack-test (0.6.2)
|
52
|
+
rack (>= 1.0)
|
53
|
+
rails (4.0.3)
|
54
|
+
actionmailer (= 4.0.3)
|
55
|
+
actionpack (= 4.0.3)
|
56
|
+
activerecord (= 4.0.3)
|
57
|
+
activesupport (= 4.0.3)
|
58
|
+
bundler (>= 1.3.0, < 2.0)
|
59
|
+
railties (= 4.0.3)
|
60
|
+
sprockets-rails (~> 2.0.0)
|
61
|
+
railties (4.0.3)
|
62
|
+
actionpack (= 4.0.3)
|
63
|
+
activesupport (= 4.0.3)
|
64
|
+
rake (>= 0.8.7)
|
65
|
+
thor (>= 0.18.1, < 2.0)
|
66
|
+
rake (10.1.1)
|
67
|
+
sprockets (2.11.0)
|
68
|
+
hike (~> 1.2)
|
69
|
+
multi_json (~> 1.0)
|
70
|
+
rack (~> 1.0)
|
71
|
+
tilt (~> 1.1, != 1.3.0)
|
72
|
+
sprockets-rails (2.0.1)
|
73
|
+
actionpack (>= 3.0)
|
74
|
+
activesupport (>= 3.0)
|
75
|
+
sprockets (~> 2.8)
|
76
|
+
thor (0.18.1)
|
77
|
+
thread_safe (0.2.0)
|
78
|
+
atomic (>= 1.1.7, < 2)
|
79
|
+
tilt (1.4.1)
|
80
|
+
treetop (1.4.15)
|
81
|
+
polyglot
|
82
|
+
polyglot (>= 0.3.1)
|
83
|
+
tzinfo (0.3.38)
|
84
|
+
|
85
|
+
PLATFORMS
|
86
|
+
ruby
|
87
|
+
|
88
|
+
DEPENDENCIES
|
89
|
+
dependency_injection-rails!
|
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Dependency Injection for Rails
|
2
|
+
|
3
|
+
`DependencyInjectionRails` adds a helper method, called `container`, to access to your ruby
|
4
|
+
[dependency injection container](https://github.com/kdisneur/dependency_injection-ruby)
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Just add the gem to your Gemfile
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'dependency_injection-rails'
|
12
|
+
```
|
13
|
+
|
14
|
+
Or simply install it using rubygems:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
gem install dependency_injection-rails
|
18
|
+
```
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
In a classic application simply require the helper, and start using it:
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
class ProductsController < ApplicationController
|
26
|
+
def create
|
27
|
+
@trendings = container.get('awesome_service').find_trending
|
28
|
+
end
|
29
|
+
|
30
|
+
# The rest of your controller code goes here...
|
31
|
+
end
|
32
|
+
```
|
33
|
+
|
34
|
+
### Configuration path
|
35
|
+
|
36
|
+
By default it will try to load `config/services.yml` configuration file, but if
|
37
|
+
your configuration file is stored in another place, you can easily change it in
|
38
|
+
an initializer:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
DependencyInjectionRails.services_path = Rails.root.join('config'. 'anther_name.yml')
|
42
|
+
```
|
@@ -0,0 +1,20 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.expand_path('../lib', __FILE__))
|
2
|
+
require 'dependency_injection_rails/version'
|
3
|
+
require 'dependency_injection_rails'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'dependency_injection-rails'
|
7
|
+
spec.version = DependencyInjectionRails::VERSION
|
8
|
+
spec.summary = 'Dependency Injection system for Rails'
|
9
|
+
spec.description = 'A Rails wrapper for a fully customizable Dependency injection system'
|
10
|
+
spec.homepage = 'https://github.com/kdisneur/dependency_injection-rails'
|
11
|
+
spec.license = 'MIT'
|
12
|
+
spec.authors = ['Kevin Disneur']
|
13
|
+
spec.email = 'kevin@koboyz.org'
|
14
|
+
spec.files = `git ls-files`.split($/)
|
15
|
+
spec.require_paths = %w(lib)
|
16
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
|
+
|
18
|
+
spec.add_dependency('rails')
|
19
|
+
spec.add_dependency('dependency_injection', '~> 0.4.1')
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rails'
|
2
|
+
require 'dependency_injection_rails/controllers/helpers'
|
3
|
+
|
4
|
+
module DependencyInjectionRails
|
5
|
+
class Railtie < Rails::Railtie
|
6
|
+
ActiveSupport.on_load(:action_controller) do
|
7
|
+
include DependencyInjectionRails::Controllers::Helpers
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
mattr_accessor :services_path
|
12
|
+
def self.services_path
|
13
|
+
@@services_path ||= Rails.root.join('config', 'services.yml')
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'dependency_injection/container'
|
2
|
+
require 'dependency_injection/loaders/yaml'
|
3
|
+
|
4
|
+
module DependencyInjectionRails
|
5
|
+
module Controllers
|
6
|
+
module Helpers
|
7
|
+
def container
|
8
|
+
@dependency_injection_container ||= create_dependency_injection_container
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def create_dependency_injection_container
|
14
|
+
dependency_injection_container = ::DependencyInjection::Container.new
|
15
|
+
populate_dependency_injection_container(dependency_injection_container)
|
16
|
+
|
17
|
+
dependency_injection_container
|
18
|
+
end
|
19
|
+
|
20
|
+
def populate_dependency_injection_container(container)
|
21
|
+
loader = ::DependencyInjection::Loaders::Yaml.new(container)
|
22
|
+
loader.load(DependencyInjectionRails.services_path)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dependency_injection-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kevin Disneur
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-06 00:00:00.000000000 Z
|
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: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dependency_injection
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.4.1
|
41
|
+
description: A Rails wrapper for a fully customizable Dependency injection system
|
42
|
+
email: kevin@koboyz.org
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- Gemfile
|
48
|
+
- Gemfile.lock
|
49
|
+
- README.md
|
50
|
+
- dependency_injection-rails.gemspec
|
51
|
+
- lib/dependency_injection_rails.rb
|
52
|
+
- lib/dependency_injection_rails/controllers/helpers.rb
|
53
|
+
- lib/dependency_injection_rails/version.rb
|
54
|
+
homepage: https://github.com/kdisneur/dependency_injection-rails
|
55
|
+
licenses:
|
56
|
+
- MIT
|
57
|
+
metadata: {}
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 2.0.14
|
75
|
+
signing_key:
|
76
|
+
specification_version: 4
|
77
|
+
summary: Dependency Injection system for Rails
|
78
|
+
test_files: []
|