active_presenters 1.0.1.5 → 1.0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -95,43 +95,43 @@ module ActivePresenter
95
95
  eval %{
96
96
  unless method_defined?(:index_path)
97
97
  def index_path
98
- #{self.plural}_path#{self.model.nested_resource.nil? ? '' : "(self.model.nested_resource)"}
98
+ #{self.plural}_path#{self.nested_resource_path_string}
99
99
  end
100
100
  end
101
101
 
102
102
  unless method_defined?(:show_path)
103
103
  def show_path
104
- #{self.singular}_path(#{self.model.nested_resource.nil? ? '' : "self.model.nested_resource, "}self.model)
104
+ #{self.singular}_path#{self.nested_resource_path_string(true)}
105
105
  end
106
106
  end
107
107
 
108
108
  unless method_defined?(:new_path)
109
109
  def new_path
110
- new_#{self.singular}_path#{self.model.nested_resource.nil? ? '' : "(self.model.nested_resource)"}
110
+ new_#{self.singular}_path#{self.nested_resource_path_string}
111
111
  end
112
112
  end
113
113
 
114
114
  unless method_defined?(:create_path)
115
115
  def create_path
116
- #{self.plural}_path#{self.model.nested_resource.nil? ? '' : "(self.model.nested_resource)"}
116
+ #{self.plural}_path#{self.nested_resource_path_string}
117
117
  end
118
118
  end
119
119
 
120
120
  unless method_defined?(:edit_path)
121
121
  def edit_path
122
- edit_#{self.singular}_path(#{self.model.nested_resource.nil? ? '' : "self.model.nested_resource, "}self.model)
122
+ edit_#{self.singular}_path#{self.nested_resource_path_string(true)}
123
123
  end
124
124
  end
125
125
 
126
126
  unless method_defined?(:update_path)
127
127
  def update_path
128
- #{self.singular}_path(#{self.model.nested_resource.nil? ? '' : "self.model.nested_resource, "}self.model)
128
+ #{self.singular}_path#{self.nested_resource_path_string(true)}
129
129
  end
130
130
  end
131
131
 
132
132
  unless method_defined?(:destroy_path)
133
133
  def destroy_path
134
- #{self.singular}_path(#{self.model.nested_resource.nil? ? '' : "self.model.nested_resource, "}self.model)
134
+ #{self.singular}_path#{self.nested_resource_path_string(true)}
135
135
  end
136
136
  end
137
137
  }
@@ -140,6 +140,13 @@ module ActivePresenter
140
140
 
141
141
  end
142
142
 
143
+ def nested_resource_path_string(include_self = false)
144
+ x = self.model.nested_resource.nil? ? '' : "self.model.nested_resource"
145
+ x << (x.blank? ? '' : ", ") << "self.model" if include_self
146
+ x = "(#{x})" unless x.blank?
147
+ x
148
+ end
149
+
143
150
  def plural
144
151
  self.model_underscore.pluralize
145
152
  end
@@ -2,4 +2,4 @@
2
2
  gem_name: active_presenters
3
3
  package: active_presenters
4
4
  project: magrathea
5
- version: 1.0.1.5
5
+ version: 1.0.1.6
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: active_presenters
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.1.5
7
- date: 2007-09-27 00:00:00 -04:00
6
+ version: 1.0.1.6
7
+ date: 2007-10-02 00:00:00 -04:00
8
8
  summary: active_presenters
9
9
  require_paths:
10
10
  - lib
@@ -44,10 +44,6 @@ files:
44
44
  - lib/presentable.rb
45
45
  - lib/proxy.rb
46
46
  - lib/tasks/rubyforge_config.yml
47
- - test/active_presenters_test.rb
48
- - test/models.rb
49
- - test/presenters.rb
50
- - test/proxy_test.rb
51
47
  test_files: []
52
48
 
53
49
  rdoc_options: []
@@ -1,93 +0,0 @@
1
- require 'test/unit'
2
- ENV["RAILS_ENV"] = "test"
3
- require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment")
4
- require File.expand_path(File.dirname(__FILE__) + "/../init")
5
- require File.expand_path(File.dirname(__FILE__) + "/models")
6
- require File.expand_path(File.dirname(__FILE__) + "/presenters")
7
-
8
- ActionController::Routing::Routes.draw do |map|
9
- map.resources :blog_posts
10
- map.resources :blog_users
11
- map.resources :blog_comments
12
- end
13
-
14
- class ActivePresentersTest < Test::Unit::TestCase
15
- include ActionView::Helpers::TagHelper # link_to
16
- include ActionView::Helpers::UrlHelper # url_for
17
- include ActionController::UrlWriter # named routes
18
- include ActionView::Helpers::TextHelper # link_to
19
- include ActionView::Helpers::FormHelper
20
- include ActionView::Helpers::FormTagHelper
21
- include ActionView::Helpers::FormOptionsHelper
22
-
23
- def test_base_presenter_built
24
- bp = BlogPost.build_new
25
- p = bp.presenter
26
- assert_presenter_basics(bp, p)
27
- end
28
-
29
- def test_default_presenter_built
30
- bc = BlogComment.build_new
31
- p = bc.presenter
32
- assert_presenter_basics(bc, p)
33
- assert p.is_a?(BlogCommentPresenter)
34
- end
35
-
36
- def test_custom_presenter_built
37
- bu = BlogUser.build_new
38
- p = bu.presenter
39
- assert_presenter_basics(bu, p, "special_foo_presenter")
40
- assert p.is_a?(SpecialFooPresenter)
41
- assert_equal "Hello World!", p.show_link_text
42
- end
43
-
44
- def test_poro_presenter_built
45
- poro = Poro.new
46
- p = poro.presenter
47
- assert_presenter_basics(poro, p)
48
- end
49
-
50
- def test_ar_resource_methods_built
51
- bp = BlogPost.build_new
52
- p = bp.presenter
53
- assert bp.is_restful?
54
- assert_nil bp.nested_resource
55
- rest_verbs.each_pair do |verb, meth|
56
- assert p.respond_to?("#{verb}_link_text")
57
- assert_equal verb.to_s, p.send("#{verb}_link_text")
58
- assert p.respond_to?("#{verb}_link_options")
59
- assert_equal({:method => meth.to_sym}, p.send("#{verb}_link_options")) unless verb == :destroy
60
- assert_equal({:method => meth.to_sym, :confirm => 'Are you sure?', :method => :delete}, p.send("#{verb}_link_options")) if verb == :destroy
61
- assert p.respond_to?("#{verb}_link")
62
- assert_equal link_to(h("#{verb}"), p.send("#{verb}_path"), p.send("#{verb}_link_options")), p.send("#{verb}_link")
63
- assert p.respond_to?("#{verb}_path")
64
- end
65
- end
66
-
67
- def test_ar_resource_methods_not_built
68
- bp = Poro.new
69
- p = bp.presenter
70
- rest_verbs.each_pair do |verb, meth|
71
- assert !p.respond_to?("#{verb}_link_text")
72
- assert !p.respond_to?("#{verb}_link_options")
73
- assert !p.respond_to?("#{verb}_link")
74
- assert !p.respond_to?("#{verb}_path")
75
- end
76
- end
77
-
78
- def rest_verbs
79
- ActivePresenter::REST_VERBS
80
- end
81
-
82
- def assert_presenter_basics(model, presenter, presenter_name = "#{model.class.to_s.underscore.to_sym}_presenter")
83
- m_underscore_sym = model.class.to_s.underscore.to_sym
84
- assert model.is_presentable?
85
- assert_equal presenter_name, model.presenter_name
86
- assert_not_nil presenter
87
- assert presenter.is_a?(ActivePresenter::Base)
88
- assert_equal model, presenter.model
89
- assert presenter.respond_to?(m_underscore_sym)
90
- assert_equal presenter.model, presenter.send(m_underscore_sym)
91
- end
92
-
93
- end
data/test/models.rb DELETED
@@ -1,59 +0,0 @@
1
- class BlogPost < ActiveRecord::Base
2
-
3
- attr_accessor :title
4
- attr_accessor :body
5
- attr_accessor :created_at
6
- attr_accessor :updated_at
7
- attr_accessor :id
8
-
9
- def initialize(hsh = {})
10
- hsh.each { |k, v| send("#{k}=", v) }
11
- end
12
-
13
- def self.build_new(options = {})
14
- BlogPost.new({:id => 1, :title => "Hello!", :body => "This is my body", :created_at => 1.day.ago, :updated_at => Time.now}.merge(options))
15
- end
16
-
17
- end
18
-
19
- class BlogComment < ActiveRecord::Base
20
-
21
- attr_accessor :blog_id
22
- attr_accessor :body
23
- attr_accessor :created_at
24
- attr_accessor :updated_at
25
- attr_accessor :id
26
-
27
- def initialize(hsh = {})
28
- hsh.each { |k, v| send("#{k}=", v) }
29
- end
30
-
31
- def self.build_new(options = {})
32
- BlogComment.new({:id => 1, :blog_id => 1, :body => "This is my body", :created_at => 1.day.ago, :updated_at => Time.now}.merge(options))
33
- end
34
-
35
- end
36
-
37
- class BlogUser < ActiveRecord::Base
38
-
39
- use_presenter :special_foo
40
-
41
- attr_accessor :username
42
- attr_accessor :email
43
- attr_accessor :created_at
44
- attr_accessor :updated_at
45
- attr_accessor :id
46
-
47
- def initialize(hsh = {})
48
- hsh.each { |k, v| send("#{k}=", v) }
49
- end
50
-
51
- def self.build_new(options = {})
52
- BlogUser.new({:id => 1, :username => "markbates", :email => "foo@foo.com", :created_at => 1.day.ago, :updated_at => Time.now}.merge(options))
53
- end
54
-
55
- end
56
-
57
- class Poro
58
- include ActivePresenter::Presentable
59
- end
data/test/presenters.rb DELETED
@@ -1,11 +0,0 @@
1
- class BlogCommentPresenter < ActivePresenter::Base
2
-
3
- end
4
-
5
- class SpecialFooPresenter < ActivePresenter::Base
6
-
7
- def show_link_text
8
- "Hello World!"
9
- end
10
-
11
- end
data/test/proxy_test.rb DELETED
@@ -1,75 +0,0 @@
1
- require 'test/unit'
2
- ENV["RAILS_ENV"] = "test"
3
- require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment")
4
- require File.expand_path(File.dirname(__FILE__) + "/../init")
5
- require File.expand_path(File.dirname(__FILE__) + "/models")
6
- require File.expand_path(File.dirname(__FILE__) + "/presenters")
7
-
8
- class ProxyTest < Test::Unit::TestCase
9
-
10
- def test_empty_constructor
11
- p = ActivePresenter::Proxy.new
12
- puts "p = #{p.inspect}"
13
- end
14
-
15
- def test_hash_constructor
16
- p = ActivePresenter::Proxy.new(:foo => :bar)
17
- assert p.methods.include?("foo")
18
- assert p.methods.include?("foo=")
19
- assert_equal :bar, p.foo
20
- p.foo = :foo_bar
21
- assert_equal :foo_bar, p.foo
22
- end
23
-
24
- def test_array_constructor
25
- @hello = "Hello There World!"
26
- p = ActivePresenter::Proxy.new([:mark, :bates, @hello])
27
- assert !p.methods.include?("mark")
28
- assert !p.methods.include?("bates")
29
- assert !p.methods.include?("hello")
30
- end
31
-
32
- def test_methods_genned
33
- p = ActivePresenter::Proxy.new
34
- assert !p.methods.include?("foo_bar")
35
- assert !p.methods.include?("foo_bar=")
36
- p.foo_bar = :bar
37
- assert_equal :bar, p.foo_bar
38
- assert p.methods.include?("foo_bar")
39
- assert p.methods.include?("foo_bar=")
40
- end
41
-
42
- def test_block
43
- p = ActivePresenter::Proxy.new(:cool => :mark)
44
- assert_equal :mark, p.cool
45
- x = p.cool do |v|
46
- assert_equal :mark, v
47
- assert_equal 2, 1 + 1
48
- v = "mark is cool"
49
- assert_equal "mark is cool", v
50
- end
51
- assert_equal :mark, x
52
- end
53
-
54
- def test_define_method
55
- p = ActivePresenter::Proxy.new
56
- assert !p.methods.include?("my_crazy_method")
57
- p.create_method("my_crazy_method") do |k, v|
58
- return [1, 2, k, v]
59
- end
60
- assert p.methods.include?("my_crazy_method")
61
- assert_equal [1,2,3,4], p.my_crazy_method(3,4)
62
- end
63
-
64
- def test_block_constructor
65
- p = ActivePresenter::Proxy.new(:partner => :mark) do |p|
66
- assert_equal :mark, p.partner
67
- p.baby = :dylan
68
- assert_equal p.baby, :dylan
69
- end
70
- assert_equal :mark, p.partner
71
- assert_equal p.baby, :dylan
72
- end
73
-
74
-
75
- end