simple_presenter 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_presenter (0.1.1)
4
+ simple_presenter (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -59,9 +59,9 @@ module SimplePresenter
59
59
  method_name = [subject, attr_name].compact.join("_")
60
60
 
61
61
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
62
- def #{method_name} # def user_name
63
- proxy_message(#{subject.inspect}, "#{attr_name}") # proxy_message("user", "name")
64
- end # end
62
+ def #{method_name}(&block) # def user_name(&block)
63
+ proxy_message(#{subject.inspect}, "#{attr_name}", &block) # proxy_message("user", "name")
64
+ end # end
65
65
  RUBY
66
66
  end
67
67
  end
@@ -90,11 +90,11 @@ module SimplePresenter
90
90
  end
91
91
 
92
92
  private
93
- def proxy_message(subject_name, method)
93
+ def proxy_message(subject_name, method, &block)
94
94
  subject_name ||= self.class.subjects.first
95
95
  subject = instance_variable_get("@#{subject_name}")
96
96
  subject = instance_variable_get("@#{self.class.subjects.first}").__send__(subject_name) unless subject || self.class.subjects.include?(subject_name)
97
- subject.respond_to?(method) ? subject.__send__(method) : nil
97
+ subject.respond_to?(method) ? subject.__send__(method, &block) : nil
98
98
  end
99
99
  end
100
100
  end
@@ -2,7 +2,7 @@ module SimplePresenter
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 1
5
+ PATCH = 2
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
data/spec/base_spec.rb CHANGED
@@ -16,14 +16,28 @@ describe SimplePresenter::Base do
16
16
 
17
17
  it { should respond_to(:user_name) }
18
18
  end
19
+
20
+ context "exposing iterators" do
21
+ subject { IteratorPresenter.new([1, 2, 3]) }
22
+
23
+ its(:each) { should be_a(Enumerator) }
24
+
25
+ it "uses provided block" do
26
+ numbers = []
27
+ subject.each {|n| numbers << n}
28
+ numbers.should == [1, 2, 3]
29
+ end
30
+ end
19
31
  end
20
32
 
21
33
  describe ".subjects" do
22
34
  it "is aliased as .subject" do
23
- subject_mock = mock("subject")
24
- subject = described_class.new(subject_mock)
35
+ thing = mock("Thing")
36
+ presenter_class = Class.new(Presenter)
37
+ presenter_class.subject :thing
38
+ presenter = presenter_class.new(thing)
25
39
 
26
- subject.instance_variable_get("@subject").should eql(subject_mock)
40
+ presenter.instance_variable_get("@thing").should eql(thing)
27
41
  end
28
42
 
29
43
  context "using defaults" do
@@ -0,0 +1,3 @@
1
+ class IteratorPresenter < Presenter
2
+ expose :each
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-18 00:00:00.000000000 Z
12
+ date: 2011-12-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70286876474780 !ruby/object:Gem::Requirement
16
+ requirement: &70152287621280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70286876474780
24
+ version_requirements: *70152287621280
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70286876474240 !ruby/object:Gem::Requirement
27
+ requirement: &70152287620700 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.7'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70286876474240
35
+ version_requirements: *70152287620700
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pry
38
- requirement: &70286876473820 !ruby/object:Gem::Requirement
38
+ requirement: &70152287620200 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70286876473820
46
+ version_requirements: *70152287620200
47
47
  description: A simple presenter/facade/decorator/whatever implementation.
48
48
  email:
49
49
  - fnando.vieira@gmail.com
@@ -68,6 +68,7 @@ files:
68
68
  - spec/spec_helper.rb
69
69
  - spec/support/comment.rb
70
70
  - spec/support/comment_presenter.rb
71
+ - spec/support/iterator_presenter.rb
71
72
  - spec/support/user.rb
72
73
  - spec/support/user_presenter.rb
73
74
  homepage: http://rubygems.org/gems/simple_presenter
@@ -84,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
85
  version: '0'
85
86
  segments:
86
87
  - 0
87
- hash: 3457942212742253514
88
+ hash: -545131197897244804
88
89
  required_rubygems_version: !ruby/object:Gem::Requirement
89
90
  none: false
90
91
  requirements:
@@ -93,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
94
  version: '0'
94
95
  segments:
95
96
  - 0
96
- hash: 3457942212742253514
97
+ hash: -545131197897244804
97
98
  requirements: []
98
99
  rubyforge_project:
99
100
  rubygems_version: 1.8.11
@@ -106,5 +107,6 @@ test_files:
106
107
  - spec/spec_helper.rb
107
108
  - spec/support/comment.rb
108
109
  - spec/support/comment_presenter.rb
110
+ - spec/support/iterator_presenter.rb
109
111
  - spec/support/user.rb
110
112
  - spec/support/user_presenter.rb