Class: RailsDecorateFactory::MetaClass

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_decorate_factory/meta_class.rb

Direct Known Subclasses

Settings

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ MetaClass

Returns a new instance of MetaClass.



28
29
30
# File 'lib/rails_decorate_factory/meta_class.rb', line 28

def initialize( request )
  @request = request
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object (private)



76
77
78
79
80
81
82
83
# File 'lib/rails_decorate_factory/meta_class.rb', line 76

def method_missing( method_name , *args )
  if /\Acurrent_([a-z_]+)\Z/ =~ method_name.to_s
    if args.blank?
      current_position( $1 )
    end
  end
  return super( method_name , args )
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



32
33
34
# File 'lib/rails_decorate_factory/meta_class.rb', line 32

def request
  @request
end

Class Method Details

.initialize_in_rails_appObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rails_decorate_factory/meta_class.rb', line 3

def self.initialize_in_rails_app
  self.class_eval do
    # include ::Rails.application.routes.url_helpers

    # @note link_to , link_to_unless_current , url_for , current_page?
    @@action_view_base = ::ActionView::Base.new

    # @return [::Module]
    @@action_view_helpers = ::ActionView::Helpers::UrlHelper

    # @return [::ActionController::Base]
    # @note url_for
    @@action_controller_base = ::ActionController::Base.new

    # @return [::Module]
    # @note url_for
    @@url_helpers = ::Rails.application.routes.url_helpers

    # @return [::ActionView::Base]
    # @note オリジナルの helper メソッド
    # @note url_for は利用不可
    @@application_controller_helper = ::ApplicationController.helpers
  end
end

Instance Method Details

#current_hostObject



38
39
40
# File 'lib/rails_decorate_factory/meta_class.rb', line 38

def current_host
  @request.host
end

#fullpathObject



58
59
60
# File 'lib/rails_decorate_factory/meta_class.rb', line 58

def fullpath
  @request.fullpath
end

#pathObject



34
35
36
# File 'lib/rails_decorate_factory/meta_class.rb', line 34

def path
  recognize_path( @request.referer )
end

#recognize_path(url) ⇒ Object



62
63
64
# File 'lib/rails_decorate_factory/meta_class.rb', line 62

def recognize_path( url )
  ::Rails.application.routes.recognize_path( url )
end