simple_presenter 0.1.1 → 0.1.2

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.
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