dependency_injection-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
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
@@ -0,0 +1,3 @@
1
+ module DependencyInjectionRails
2
+ VERSION = '0.1.0'
3
+ 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: []