conductor-rails 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/conductor-rails.gemspec +0 -1
- data/lib/conductor/base.rb +1 -5
- data/lib/conductor/deferred_export.rb +5 -7
- data/lib/conductor/exporter.rb +11 -3
- data/lib/conductor/version.rb +1 -1
- data/spec/conductor/integrations/action_controller_spec.rb +5 -0
- data/spec/spec_helper.rb +11 -0
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a13b0943de25440c97671cd1c4e629c464508b4
|
4
|
+
data.tar.gz: 4fa1896342b2d3252b5587f03f3cb50cd3322633
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c8da0d5fd9af1358bb6473ae993677e1d4e37c350c0eb9c948793d6700c766346df3c77a9728855a3c4b5cce3666c672770368e685b7ed45e14552836b55adc
|
7
|
+
data.tar.gz: 1007d3afc957459f50e8dc2aa5f3c51606acffa1be2b510dfd63c67b3f904502c723a2121c6f7972c16f8d24ecd90ada630b98a85e7128acc44fc3624fbc78b7
|
data/README.md
CHANGED
data/conductor-rails.gemspec
CHANGED
data/lib/conductor/base.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
|
3
1
|
module Conductor
|
4
2
|
class Base
|
5
3
|
def initialize(controller)
|
@@ -24,10 +22,8 @@ module Conductor
|
|
24
22
|
attr_reader :controller, :params
|
25
23
|
|
26
24
|
def self.export(id, value=nil, &block)
|
27
|
-
@exports ||= []
|
28
|
-
|
29
25
|
callback = value.nil? ? block : Proc.new { value }
|
30
|
-
|
26
|
+
exports << DeferredExport.new(id, &callback)
|
31
27
|
end
|
32
28
|
|
33
29
|
def self.exports
|
@@ -2,18 +2,16 @@ module Conductor
|
|
2
2
|
class DeferredExport
|
3
3
|
attr_reader :id
|
4
4
|
|
5
|
-
def initialize(
|
6
|
-
@id
|
7
|
-
@callback = options.fetch(:callback)
|
8
|
-
@context = options.fetch(:context, self)
|
5
|
+
def initialize(id, &callback)
|
6
|
+
@id, @callback = id, callback
|
9
7
|
end
|
10
8
|
|
11
|
-
def export(export_value=nil)
|
12
|
-
context.
|
9
|
+
def export(context, export_value=nil)
|
10
|
+
context.instance_exec(export_value, &callback)
|
13
11
|
end
|
14
12
|
|
15
13
|
private
|
16
14
|
|
17
|
-
attr_reader :context
|
15
|
+
attr_reader :context, :callback
|
18
16
|
end
|
19
17
|
end
|
data/lib/conductor/exporter.rb
CHANGED
@@ -14,16 +14,24 @@ module Conductor
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
attr_reader :arguments
|
17
|
+
attr_reader :arguments, :context
|
18
18
|
|
19
19
|
def output
|
20
20
|
@output ||= begin
|
21
|
-
|
22
|
-
exports <<
|
21
|
+
enumerable_exports do |deferred, exports|
|
22
|
+
exports << export_deferred(deferred)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
def enumerable_exports(&block)
|
28
|
+
selected_exports.to_a.each_with_object([], &block)
|
29
|
+
end
|
30
|
+
|
31
|
+
def export_deferred(deferred)
|
32
|
+
deferred.export(conductor, requested_export_value)
|
33
|
+
end
|
34
|
+
|
27
35
|
def selected_exports
|
28
36
|
requested_export_keys.map do |key|
|
29
37
|
exports.find { |export| export.id == key }
|
data/lib/conductor/version.rb
CHANGED
@@ -51,6 +51,11 @@ describe DummyController, "Integration ActionController::Base" do
|
|
51
51
|
subject { controller.instance_variable_get :@omg }
|
52
52
|
it { is_expected.to eq "LMAO..." }
|
53
53
|
end
|
54
|
+
|
55
|
+
context "@my_method" do
|
56
|
+
subject { controller.instance_variable_get :@my_method }
|
57
|
+
it { is_expected.to eq "conductor method called" }
|
58
|
+
end
|
54
59
|
end
|
55
60
|
end
|
56
61
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -15,16 +15,27 @@ class DummyController < ActionController::Base
|
|
15
15
|
@foo_a, @bar_a, @meme = conductor.export
|
16
16
|
@bar_b, @foo_b = conductor.export(:bar, :foo)
|
17
17
|
@omg = conductor.export(:omg, "LMAO")
|
18
|
+
@my_method = conductor.export(:my_method)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
21
22
|
class TestMultiExportConductor < Conductor::Base
|
22
23
|
export :foo, "Hello World"
|
23
24
|
export :bar, "Goodbye Moon"
|
25
|
+
|
24
26
|
export :meme do
|
25
27
|
"Me me"
|
26
28
|
end
|
29
|
+
|
27
30
|
export :omg do |lol|
|
28
31
|
"#{lol}..."
|
29
32
|
end
|
33
|
+
|
34
|
+
export :my_method do
|
35
|
+
my_method
|
36
|
+
end
|
37
|
+
|
38
|
+
def my_method
|
39
|
+
"conductor method called"
|
40
|
+
end
|
30
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conductor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cuppy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,20 +94,6 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 4.3.1
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: pry-byebug
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
97
|
description:
|
112
98
|
email:
|
113
99
|
- adam@codingzeal.com
|