ruhl 0.15.0 → 0.16.0

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.15.0
1
+ 0.16.0
@@ -0,0 +1,44 @@
1
+ module Ruhl
2
+ module Rails
3
+ module ActiveRecord
4
+ def error_messages?
5
+ !presentee.errors.empty?
6
+ end
7
+
8
+ def error_messages
9
+ return if presentee.errors.empty?
10
+ presentee.errors.full_messages
11
+ end
12
+
13
+ def define_paths(model)
14
+ define_action(model, 'show') # show_path(@user)
15
+ define_action(model, 'update') # update_path(@user)
16
+ define_action(model, 'delete') # delete_path(@user)
17
+ define_action("edit_#{model}", 'edit') # edit_path(@user)
18
+ define_action(model.pluralize, 'index', false) # index_path
19
+ define_action(model.pluralize, 'create', false) # create_path
20
+ define_action("new_#{model}", 'new', false) # new_path
21
+ end
22
+
23
+ private
24
+
25
+ def define_action(model, action, use_presentee = true)
26
+ if use_presentee
27
+ self.class.send(:define_method, "#{action}_path") do
28
+ context.send("#{model}_path", presentee)
29
+ end
30
+ self.class.send(:define_method, "#{action}_url") do
31
+ context.send("#{model}_url", presentee)
32
+ end
33
+ else
34
+ self.class.send(:define_method, "#{action}_path") do
35
+ context.send("#{model}_path")
36
+ end
37
+ self.class.send(:define_method, "#{action}_url") do
38
+ context.send("#{model}_url")
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,9 @@
1
+ module Ruhl
2
+ module Rails
3
+ module Helper
4
+ def form_authenticity
5
+ {:value => form_authenticity_token, :type => "hidden", :name => "authenticity_token"}
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,37 +1,42 @@
1
- require 'ruhl/rails/active_record_presenter'
1
+ require 'ruhl/rails/active_record'
2
+ require 'ruhl/rails/helper'
2
3
 
3
- class RuhlPresenter
4
- include ActiveRecordPresenter
5
- include FormHelper
4
+ module Ruhl
5
+ module Rails
6
+ class Presenter
7
+ include Ruhl::Rails::ActiveRecord
8
+ include Ruhl::Rails::Helper
6
9
 
7
- attr_reader :presentee, :context
10
+ attr_reader :presentee, :context
8
11
 
9
- def initialize(obj, context)
10
- @presentee = obj
11
- @context = context
12
- define_paths(obj.class.name.underscore.downcase)
13
- end
12
+ def initialize(obj, context)
13
+ @presentee = obj
14
+ @context = context
15
+ define_paths(obj.class.name.underscore.downcase)
16
+ end
14
17
 
15
- def method_missing(name, *args)
16
- if presentee.respond_to?(name)
17
- # Pass presenter method call to model so you don't have to
18
- # redefine every model method in the presenter class.
19
- presentee.send(name, *args)
20
- elsif context.respond_to?(name)
21
- # Instead of saying context.link_to('Some site', some_path)
22
- # can just use link_to
23
- context.send(name, *args)
24
- end
25
- end
18
+ def method_missing(name, *args)
19
+ if presentee.respond_to?(name)
20
+ # Pass presenter method call to model so you don't have to
21
+ # redefine every model method in the presenter class.
22
+ presentee.send(name, *args)
23
+ elsif context.respond_to?(name)
24
+ # Instead of saying context.link_to('Some site', some_path)
25
+ # can just use link_to
26
+ context.send(name, *args)
27
+ end
28
+ end
26
29
 
27
- # Extend scope of respond_to? to model.
28
- def respond_to?(name)
29
- if super
30
- true
31
- else
32
- presentee.respond_to?(name)
30
+ # Extend scope of respond_to? to model.
31
+ def respond_to?(name)
32
+ if super
33
+ true
34
+ else
35
+ presentee.respond_to?(name)
36
+ end
37
+ end
33
38
  end
34
- end
39
+ end
35
40
  end
36
41
 
37
42
  module ActionController
@@ -45,7 +50,7 @@ module ActionController
45
50
  end
46
51
 
47
52
  def presenter_for(obj)
48
- eval("#{obj.class.name}Presenter").new(obj, @template)
53
+ Object.const_get("#{obj.class.name}Presenter").new(obj, @template)
49
54
  end
50
55
 
51
56
  helper_method :presenter_for
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruhl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Stone
@@ -49,11 +49,10 @@ files:
49
49
  - lib/ruhl/engine.rb
50
50
  - lib/ruhl/errors.rb
51
51
  - lib/ruhl/rails.rb
52
- - lib/ruhl/rails/active_record_presenter.rb
53
- - lib/ruhl/rails/form_helper.rb
52
+ - lib/ruhl/rails/active_record.rb
53
+ - lib/ruhl/rails/helper.rb
54
54
  - lib/ruhl/rails/ruhl_presenter.rb
55
55
  - lib/ruhl/sinatra.rb
56
- - ruhl.gemspec
57
56
  - spec/html/basic.html
58
57
  - spec/html/collection_of_hashes.html
59
58
  - spec/html/collection_of_strings.html
@@ -1,40 +0,0 @@
1
- module ActiveRecordPresenter
2
- def error_messages?
3
- !presentee.errors.empty?
4
- end
5
-
6
- def error_messages
7
- return if presentee.errors.empty?
8
- presentee.errors.full_messages
9
- end
10
-
11
- def define_paths(model)
12
- define_action(model, 'show') # show_path(@user)
13
- define_action(model, 'update') # update_path(@user)
14
- define_action(model, 'delete') # delete_path(@user)
15
- define_action("edit_#{model}", 'edit') # edit_path(@user)
16
- define_action(model.pluralize, 'index', false) # index_path
17
- define_action(model.pluralize, 'create', false) # create_path
18
- define_action("new_#{model}", 'new', false) # new_path
19
- end
20
-
21
- private
22
-
23
- def define_action(model, action, use_presentee = true)
24
- if use_presentee
25
- self.class.send(:define_method, "#{action}_path") do
26
- context.send("#{model}_path", presentee)
27
- end
28
- self.class.send(:define_method, "#{action}_url") do
29
- context.send("#{model}_url", presentee)
30
- end
31
- else
32
- self.class.send(:define_method, "#{action}_path") do
33
- context.send("#{model}_path")
34
- end
35
- self.class.send(:define_method, "#{action}_url") do
36
- context.send("#{model}_url")
37
- end
38
- end
39
- end
40
- end
@@ -1,5 +0,0 @@
1
- module FormHelper
2
- def form_authenticity
3
- {:value => form_autheticity_token, :type => "hidden", :name => "authenticity_token"}
4
- end
5
- end
@@ -1,83 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{ruhl}
8
- s.version = "0.15.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Andrew Stone"]
12
- s.date = %q{2009-11-21}
13
- s.description = %q{Make your HTML dynamic with the addition of a data-ruhl attribute.}
14
- s.email = %q{andy@stonean.com}
15
- s.extra_rdoc_files = [
16
- "README"
17
- ]
18
- s.files = [
19
- ".gitignore",
20
- "README",
21
- "Rakefile",
22
- "VERSION",
23
- "lib/ruhl.rb",
24
- "lib/ruhl/engine.rb",
25
- "lib/ruhl/errors.rb",
26
- "lib/ruhl/rails.rb",
27
- "lib/ruhl/rails/active_record_presenter.rb",
28
- "lib/ruhl/rails/form_helper.rb",
29
- "lib/ruhl/rails/ruhl_presenter.rb",
30
- "lib/ruhl/sinatra.rb",
31
- "ruhl.gemspec",
32
- "spec/html/basic.html",
33
- "spec/html/collection_of_hashes.html",
34
- "spec/html/collection_of_strings.html",
35
- "spec/html/form.html",
36
- "spec/html/fragment.html",
37
- "spec/html/hash.html",
38
- "spec/html/if.html",
39
- "spec/html/if_on_collection.html",
40
- "spec/html/layout.html",
41
- "spec/html/loop.html",
42
- "spec/html/main_with_form.html",
43
- "spec/html/main_with_sidebar.html",
44
- "spec/html/medium.html",
45
- "spec/html/parameters.html",
46
- "spec/html/seo.html",
47
- "spec/html/sidebar.html",
48
- "spec/html/special.html",
49
- "spec/html/swap.html",
50
- "spec/html/use.html",
51
- "spec/html/use_if.html",
52
- "spec/rcov.opts",
53
- "spec/ruhl_spec.rb",
54
- "spec/spec.opts",
55
- "spec/spec_helper.rb"
56
- ]
57
- s.homepage = %q{http://github.com/stonean/ruhl}
58
- s.rdoc_options = ["--charset=UTF-8"]
59
- s.require_paths = ["lib"]
60
- s.rubygems_version = %q{1.3.5}
61
- s.summary = %q{Ruby Hypertext Language}
62
- s.test_files = [
63
- "spec/ruhl_spec.rb",
64
- "spec/spec_helper.rb"
65
- ]
66
-
67
- if s.respond_to? :specification_version then
68
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
69
- s.specification_version = 3
70
-
71
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
72
- s.add_runtime_dependency(%q<nokogiri>, ["= 1.4.0"])
73
- s.add_development_dependency(%q<rspec>, [">= 0"])
74
- else
75
- s.add_dependency(%q<nokogiri>, ["= 1.4.0"])
76
- s.add_dependency(%q<rspec>, [">= 0"])
77
- end
78
- else
79
- s.add_dependency(%q<nokogiri>, ["= 1.4.0"])
80
- s.add_dependency(%q<rspec>, [">= 0"])
81
- end
82
- end
83
-