prospecto 0.0.7 → 0.0.9
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/README.md +1 -1
- data/lib/generators/presenter/USAGE +13 -0
- data/lib/generators/presenter/presenter_generator.rb +25 -0
- data/lib/generators/presenter/templates/presenter.rb +8 -0
- data/lib/generators/presenter/templates/presenter_spec.rb +4 -0
- data/lib/prospecto.rb +1 -1
- data/lib/prospecto/presenter_view.rb +30 -0
- data/lib/prospecto/railtie.rb +0 -8
- data/lib/prospecto/version.rb +1 -1
- data/test/dummy/{db/test.sqlite3 → log/development.log} +0 -0
- data/test/dummy/log/test.log +8 -0
- data/test/view_test.rb +9 -4
- metadata +17 -14
- data/lib/prospecto/controller.rb +0 -9
- data/lib/prospecto/view.rb +0 -15
data/README.md
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
Description:
|
2
|
+
Generate a simple presenter class.
|
3
|
+
|
4
|
+
The name can be anything you want, there is no direct correlation between a
|
5
|
+
presenter and a single model, although there is often a correlation with the
|
6
|
+
presenter and the controller.
|
7
|
+
|
8
|
+
Example:
|
9
|
+
rails generate presenter User
|
10
|
+
|
11
|
+
This will create:
|
12
|
+
app/presenters/user_presenter.rb
|
13
|
+
spec/presenters/user_presenter_spec.rb
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class PresenterGenerator < Rails::Generators::NamedBase
|
2
|
+
source_root File.expand_path('../templates', __FILE__)
|
3
|
+
|
4
|
+
def write_presenter
|
5
|
+
template 'presenter.rb', "app/presenters/#{file_name_root}_presenter.rb"
|
6
|
+
end
|
7
|
+
|
8
|
+
def write_presenter_spec
|
9
|
+
template 'presenter_spec.rb', "spec/presenters/#{file_name_root}_presenter_spec.rb"
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def file_name_root
|
15
|
+
name.underscore
|
16
|
+
end
|
17
|
+
|
18
|
+
def class_name
|
19
|
+
name.camelize
|
20
|
+
end
|
21
|
+
|
22
|
+
def single_name
|
23
|
+
name.underscore.singularize
|
24
|
+
end
|
25
|
+
end
|
data/lib/prospecto.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
module Prospecto
|
2
|
+
class PresenterView
|
3
|
+
def initialize(args={})
|
4
|
+
args.each do |name, value|
|
5
|
+
if respond_to? name
|
6
|
+
instance_variable_set("@#{name}", value)
|
7
|
+
else
|
8
|
+
# Stop everything there is a design problem.
|
9
|
+
raise ArgumentError.new("Unknown property '#{name}' for class '#{self.class.name}'.")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# "Presents" means a member will be reflected out to the view
|
16
|
+
alias :presents :attr_reader
|
17
|
+
|
18
|
+
# Accepts means the view uses the member internally, but it is not available
|
19
|
+
# outside the class.
|
20
|
+
def accepts(*args)
|
21
|
+
args.each do |name|
|
22
|
+
define_method name do
|
23
|
+
instance_variable_get("@#{name}")
|
24
|
+
end
|
25
|
+
protected name
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/prospecto/railtie.rb
CHANGED
@@ -1,17 +1,9 @@
|
|
1
1
|
require 'rails/railtie'
|
2
|
-
require 'prospecto/controller'
|
3
2
|
|
4
3
|
module Prospecto
|
5
4
|
class Railtie < Rails::Railtie
|
6
5
|
initializer "prospecto.initialize" do |app|
|
7
|
-
ActionController::Base.extend(ProspectoController)
|
8
|
-
ActionController::Base.class_eval { enable_prospecto }
|
9
|
-
end
|
10
6
|
|
11
|
-
initializer 'prospecto.autoload', :before => :set_autoload_paths do |app|
|
12
|
-
Dir["#{app.root}/app/views/**/"].each do |view_folder|
|
13
|
-
app.config.autoload_paths << view_folder
|
14
|
-
end
|
15
7
|
end
|
16
8
|
end
|
17
9
|
end
|
data/lib/prospecto/version.rb
CHANGED
File without changes
|
data/test/dummy/log/test.log
CHANGED
@@ -32,3 +32,11 @@
|
|
32
32
|
[1m[35m (0.0ms)[0m rollback transaction
|
33
33
|
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
34
34
|
[1m[35m (0.0ms)[0m rollback transaction
|
35
|
+
[1m[36m (0.5ms)[0m [1mbegin transaction[0m
|
36
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
37
|
+
[1m[36m (0.3ms)[0m [1mbegin transaction[0m
|
38
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
39
|
+
[1m[36m (0.4ms)[0m [1mbegin transaction[0m
|
40
|
+
[1m[35m (0.1ms)[0m rollback transaction
|
41
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
42
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
data/test/view_test.rb
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ViewTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
class TestConstructor < Prospecto::View
|
5
|
+
accepts :name, :age
|
6
|
+
end
|
7
|
+
|
8
|
+
test "auto generates a constructor" do
|
9
|
+
assert TestConstructor.new(:name => "Bob", :age => 44).present?
|
10
|
+
end
|
11
|
+
|
12
|
+
test "auto generates attr_readers" do
|
8
13
|
person = TestConstructor.new(:name => "Bob", :age => 44)
|
9
14
|
assert_equal person.name, "Bob"
|
10
15
|
assert_equal person.age, 44
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prospecto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
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: 2012-04
|
12
|
+
date: 2012-05-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70256414237120 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70256414237120
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3
|
27
|
-
requirement: &
|
27
|
+
requirement: &70256414236320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70256414236320
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: turn
|
38
|
-
requirement: &
|
38
|
+
requirement: &70256414235640 !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: *
|
46
|
+
version_requirements: *70256414235640
|
47
47
|
description: ''
|
48
48
|
email:
|
49
49
|
- bigjasonwebb@gmail.com
|
@@ -51,10 +51,13 @@ executables: []
|
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
53
53
|
files:
|
54
|
-
- lib/
|
54
|
+
- lib/generators/presenter/presenter_generator.rb
|
55
|
+
- lib/generators/presenter/templates/presenter.rb
|
56
|
+
- lib/generators/presenter/templates/presenter_spec.rb
|
57
|
+
- lib/generators/presenter/USAGE
|
58
|
+
- lib/prospecto/presenter_view.rb
|
55
59
|
- lib/prospecto/railtie.rb
|
56
60
|
- lib/prospecto/version.rb
|
57
|
-
- lib/prospecto/view.rb
|
58
61
|
- lib/prospecto.rb
|
59
62
|
- lib/tasks/prospecto_tasks.rake
|
60
63
|
- MIT-LICENSE
|
@@ -81,7 +84,7 @@ files:
|
|
81
84
|
- test/dummy/config/locales/en.yml
|
82
85
|
- test/dummy/config/routes.rb
|
83
86
|
- test/dummy/config.ru
|
84
|
-
- test/dummy/
|
87
|
+
- test/dummy/log/development.log
|
85
88
|
- test/dummy/log/test.log
|
86
89
|
- test/dummy/public/404.html
|
87
90
|
- test/dummy/public/422.html
|
@@ -107,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
110
|
version: '0'
|
108
111
|
segments:
|
109
112
|
- 0
|
110
|
-
hash:
|
113
|
+
hash: -40013224359218802
|
111
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
115
|
none: false
|
113
116
|
requirements:
|
@@ -116,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
119
|
version: '0'
|
117
120
|
segments:
|
118
121
|
- 0
|
119
|
-
hash:
|
122
|
+
hash: -40013224359218802
|
120
123
|
requirements: []
|
121
124
|
rubyforge_project:
|
122
125
|
rubygems_version: 1.8.10
|
@@ -145,7 +148,7 @@ test_files:
|
|
145
148
|
- test/dummy/config/locales/en.yml
|
146
149
|
- test/dummy/config/routes.rb
|
147
150
|
- test/dummy/config.ru
|
148
|
-
- test/dummy/
|
151
|
+
- test/dummy/log/development.log
|
149
152
|
- test/dummy/log/test.log
|
150
153
|
- test/dummy/public/404.html
|
151
154
|
- test/dummy/public/422.html
|
data/lib/prospecto/controller.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
module Prospecto
|
2
|
-
module ProspectoController
|
3
|
-
def enable_prospecto
|
4
|
-
view_path = Rails.root.join("app/views")
|
5
|
-
resolver = ActionView::FileSystemResolver.new(view_path, ":prefix/templates/:action{.:locale,}{.:formats,}{.:handlers,}")
|
6
|
-
prepend_view_path(resolver)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
data/lib/prospecto/view.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Prospecto
|
2
|
-
class View
|
3
|
-
# lookup_context is required for rspec integration to work.
|
4
|
-
attr_reader :lookup_context
|
5
|
-
|
6
|
-
def self.accepts(*names)
|
7
|
-
attr_accessor *names
|
8
|
-
define_method :initialize do |args={}|
|
9
|
-
args.each do |name, value|
|
10
|
-
instance_variable_set("@#{name}", value)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|