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 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: []