simple_presenter 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 089a42a4544e2ffbf5507cb6db9be38afb3cce32
4
+ data.tar.gz: d10675ea4161bdb05499cbab2e162fa4407765e6
5
+ SHA512:
6
+ metadata.gz: 40dfafdca0b0bd5fe3288c4143be2cf269a53e9629d0be67eb0922e5cc572de205967bde4a96a37d750893657874d29894a19239bc6088d289841ec7db54793a
7
+ data.tar.gz: 71888532c73a7e22b4a98224e365f5a759c64840857b11761b1b61d16edf08430b1de11632fa49fcb509b36e99ea8975c87e541d7504e8b040bd9404ec367685
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
  gemspec
data/Gemfile.lock CHANGED
@@ -1,34 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_presenter (0.2.1)
4
+ simple_presenter (0.2.2)
5
5
 
6
6
  GEM
7
- remote: http://rubygems.org/
7
+ remote: https://rubygems.org/
8
8
  specs:
9
- coderay (1.0.8)
10
- diff-lcs (1.1.3)
9
+ awesome_print (1.1.0)
10
+ coderay (1.0.9)
11
+ diff-lcs (1.2.1)
11
12
  method_source (0.8.1)
12
- pry (0.9.11.1)
13
+ pry (0.9.12)
13
14
  coderay (~> 1.0.5)
14
15
  method_source (~> 0.8)
15
16
  slop (~> 3.4)
17
+ pry-meta (0.0.5)
18
+ awesome_print
19
+ pry
20
+ pry-nav
21
+ pry-remote
22
+ pry-nav (0.2.3)
23
+ pry (~> 0.9.10)
24
+ pry-remote (0.1.7)
25
+ pry (~> 0.9)
26
+ slop (~> 3.0)
16
27
  rake (10.0.3)
17
- rspec (2.12.0)
18
- rspec-core (~> 2.12.0)
19
- rspec-expectations (~> 2.12.0)
20
- rspec-mocks (~> 2.12.0)
21
- rspec-core (2.12.2)
22
- rspec-expectations (2.12.1)
23
- diff-lcs (~> 1.1.3)
24
- rspec-mocks (2.12.1)
25
- slop (3.4.3)
28
+ rspec (2.13.0)
29
+ rspec-core (~> 2.13.0)
30
+ rspec-expectations (~> 2.13.0)
31
+ rspec-mocks (~> 2.13.0)
32
+ rspec-core (2.13.1)
33
+ rspec-expectations (2.13.0)
34
+ diff-lcs (>= 1.1.3, < 2.0)
35
+ rspec-mocks (2.13.0)
36
+ slop (3.4.4)
26
37
 
27
38
  PLATFORMS
28
39
  ruby
29
40
 
30
41
  DEPENDENCIES
31
- pry
42
+ pry-meta
32
43
  rake
33
44
  rspec
34
45
  simple_presenter!
@@ -83,9 +83,11 @@ module SimplePresenter
83
83
  # class CommentPresenter < Presenter
84
84
  # expose :body, :created_at
85
85
  # expose :name, :with => :user
86
+ # expose :name, :as => :author
86
87
  # end
87
88
  #
88
89
  # The presenter above will expose the methods +body+, +created_at+, and +user_name+.
90
+ # Additionaly, it will create an alias called +author+ to the +name+ attribute.
89
91
  #
90
92
  def self.expose(*attrs)
91
93
  options = attrs.pop if attrs.last.kind_of?(Hash)
@@ -93,7 +95,12 @@ module SimplePresenter
93
95
 
94
96
  attrs.each do |attr_name|
95
97
  subject = options.fetch(:with, nil)
96
- method_name = [subject, attr_name].compact.join("_")
98
+
99
+ method_name = [
100
+ subject,
101
+ options.fetch(:as, attr_name)
102
+ ].compact.join("_")
103
+
97
104
  attributes[method_name.to_sym] = [attr_name, options]
98
105
 
99
106
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
@@ -2,7 +2,7 @@ module SimplePresenter
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- PATCH = 1
5
+ PATCH = 2
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
@@ -19,5 +19,5 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_development_dependency "rake"
21
21
  s.add_development_dependency "rspec"
22
- s.add_development_dependency "pry"
22
+ s.add_development_dependency "pry-meta"
23
23
  end
data/spec/base_spec.rb CHANGED
@@ -17,6 +17,14 @@ describe SimplePresenter::Base do
17
17
  it { should respond_to(:user_name) }
18
18
  end
19
19
 
20
+ context "using :as option" do
21
+ let(:site) { OpenStruct.new(:site => "http://example.org") }
22
+ subject { AliasPresenter.new(site) }
23
+
24
+ it { should respond_to(:url) }
25
+ it { expect(subject.url).to eql("http://example.org") }
26
+ end
27
+
20
28
  context "exposing iterators" do
21
29
  subject { IteratorPresenter.new([1, 2, 3]) }
22
30
 
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,8 @@
1
- require "bundler"
2
- Bundler.setup(:default, :development)
3
- Bundler.require
1
+ require "bundler/setup"
2
+ Bundler.require(:default, :development)
4
3
 
5
4
  require "simple_presenter"
5
+ require "ostruct"
6
6
 
7
7
  Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each do |file|
8
8
  require file
@@ -0,0 +1,4 @@
1
+ class AliasPresenter < Presenter
2
+ expose :site
3
+ expose :site, :as => :url
4
+ end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nando Vieira
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-16 00:00:00.000000000 Z
11
+ date: 2013-03-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: pry
42
+ name: pry-meta
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: A simple presenter/facade/decorator/whatever implementation.
@@ -82,6 +75,7 @@ files:
82
75
  - spec/base_spec.rb
83
76
  - spec/simple_presenter_spec.rb
84
77
  - spec/spec_helper.rb
78
+ - spec/support/alias_presenter.rb
85
79
  - spec/support/comment.rb
86
80
  - spec/support/comment_presenter.rb
87
81
  - spec/support/iterator_presenter.rb
@@ -89,26 +83,25 @@ files:
89
83
  - spec/support/user_presenter.rb
90
84
  homepage: http://rubygems.org/gems/simple_presenter
91
85
  licenses: []
86
+ metadata: {}
92
87
  post_install_message:
93
88
  rdoc_options: []
94
89
  require_paths:
95
90
  - lib
96
91
  required_ruby_version: !ruby/object:Gem::Requirement
97
- none: false
98
92
  requirements:
99
- - - ! '>='
93
+ - - '>='
100
94
  - !ruby/object:Gem::Version
101
95
  version: '0'
102
96
  required_rubygems_version: !ruby/object:Gem::Requirement
103
- none: false
104
97
  requirements:
105
- - - ! '>='
98
+ - - '>='
106
99
  - !ruby/object:Gem::Version
107
100
  version: '0'
108
101
  requirements: []
109
102
  rubyforge_project:
110
- rubygems_version: 1.8.24
103
+ rubygems_version: 2.0.3
111
104
  signing_key:
112
- specification_version: 3
105
+ specification_version: 4
113
106
  summary: A simple presenter/facade/decorator/whatever implementation.
114
107
  test_files: []