interjectable 0.2.0 → 0.2.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65cb14e1a285fd271b95c26e0e21cfa7aa161cdf
4
- data.tar.gz: 1d453d0ce9c8d3415e4944ff1d5888df77dcb828
3
+ metadata.gz: 0d810c4b31d398d621d728de427a57e078be0a83
4
+ data.tar.gz: dcc2d93576e3f08436a32527719e6a56b24a998f
5
5
  SHA512:
6
- metadata.gz: f0eb41e6294a1bb6f80f58a135fae07f2adaaf161c76277e2499ae6f73784b66fd831a72c983c59082dadb0ef0ec596738bc0fac09e5472d38877e2baa2f95d1
7
- data.tar.gz: 14e02cf2190d7bfbc77cfbfe96edee7280d52fe82c94ea67dc6a6ae178580125f8fb62e1e3c8b3b036ac62a029c6482f68eb9e0e5ff579ddaad4da3b64d62e98
6
+ metadata.gz: 307d9bb43b2faaf88ac043c32f1ef693ebd7871ef586403f1a9909064896e15269d59d1f335753ca43dec477bb21755367ff36e7406b12e3efde6006ce9738eb
7
+ data.tar.gz: 3f33bc63f27d399025beb5b19009d38de81f196b38b26bd8d884df878bb619992c58cd7bc0120cfce1b4ec6ec237be06acc98227e60d97ab3d0cc620fb5a7b3c
data/CHANGES.md ADDED
@@ -0,0 +1,21 @@
1
+ # Change Log
2
+
3
+ # v0.2.0
4
+
5
+ Small feature.
6
+
7
+ - Added `Interjectable#inject_static` for sharing values across multiple
8
+ instances.
9
+
10
+ # v0.0.2
11
+
12
+ Small patch.
13
+
14
+ - Updated `Interjectable#inject` to only call dependencies once, including
15
+ results with falsy values.
16
+
17
+ # v0.0.1
18
+
19
+ Initial release.
20
+
21
+ - Added `Interjectable#inject`
data/README.md CHANGED
@@ -16,7 +16,7 @@ Interjectable has one module (`Interjectable`) and two methods. Use them like so
16
16
 
17
17
  ```ruby
18
18
  class MyClass
19
- extend Interjectable
19
+ include Interjectable
20
20
 
21
21
  # defines helper methods on instances that memoize values per instance
22
22
  inject(:dependency) { SomeOtherClass.new }
data/lib/interjectable.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require "interjectable/version"
2
2
 
3
3
  module Interjectable
4
- def self.extended(mod)
5
- super
4
+ def self.included(mod)
5
+ mod.send(:extend, self)
6
6
  end
7
7
 
8
8
  # Defines a helper methods on instances that memoize values per-instance.
@@ -1,3 +1,3 @@
1
1
  module Interjectable
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -1,8 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Interjectable do
4
- context "when extended" do
5
- let(:klass) { Class.new { extend Interjectable } }
4
+ shared_examples_for "an interjectable class" do
6
5
  let(:instance) { klass.new }
7
6
 
8
7
  describe "#inject" do
@@ -89,4 +88,16 @@ describe Interjectable do
89
88
  end
90
89
  end
91
90
  end
91
+
92
+ context "when extended" do
93
+ let(:klass) { Class.new { extend Interjectable } }
94
+
95
+ it_should_behave_like "an interjectable class"
96
+ end
97
+
98
+ context "when included" do
99
+ let(:klass) { Class.new { extend Interjectable } }
100
+
101
+ it_should_behave_like "an interjectable class"
102
+ end
92
103
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interjectable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Margolis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-16 00:00:00.000000000 Z
11
+ date: 2014-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - .gitignore
63
+ - CHANGES.md
63
64
  - Gemfile
64
65
  - LICENSE.txt
65
66
  - README.md