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 +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +26 -15
- data/lib/simple_presenter/base.rb +8 -1
- data/lib/simple_presenter/version.rb +1 -1
- data/simple_presenter.gemspec +1 -1
- data/spec/base_spec.rb +8 -0
- data/spec/spec_helper.rb +3 -3
- data/spec/support/alias_presenter.rb +4 -0
- metadata +15 -22
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
|
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.
|
4
|
+
simple_presenter (0.2.2)
|
5
5
|
|
6
6
|
GEM
|
7
|
-
remote:
|
7
|
+
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
|
10
|
-
|
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.
|
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.
|
18
|
-
rspec-core (~> 2.
|
19
|
-
rspec-expectations (~> 2.
|
20
|
-
rspec-mocks (~> 2.
|
21
|
-
rspec-core (2.
|
22
|
-
rspec-expectations (2.
|
23
|
-
diff-lcs (
|
24
|
-
rspec-mocks (2.
|
25
|
-
slop (3.4.
|
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
|
-
|
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
|
data/simple_presenter.gemspec
CHANGED
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.
|
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
|
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.
|
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-
|
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:
|
103
|
+
rubygems_version: 2.0.3
|
111
104
|
signing_key:
|
112
|
-
specification_version:
|
105
|
+
specification_version: 4
|
113
106
|
summary: A simple presenter/facade/decorator/whatever implementation.
|
114
107
|
test_files: []
|