module Jbuilder::Jpartial

Jpartial module

Constants

DangerousMethodName
Template

Proxy object that sends all method calls to Jpartial.jpartial

VERSION

Public Class Methods

_dangerous_method_name?(name) click to toggle source
# File lib/jbuilder/jpartial.rb, line 28
def self._dangerous_method_name?(name)
  !@defined_by_user.include?(name) &&
    Jbuilder.method_defined?(name) ||
    Jbuilder.private_method_defined?(name)
end
_raise_dangerous_method_name_error(name) click to toggle source
# File lib/jbuilder/jpartial.rb, line 23
def self._raise_dangerous_method_name_error(name)
  raise DangerousMethodName, "The method `##{name}` is already defined"\
    ' by Jbuilder. Please choose another name to define your partial'
end
configure() { |template| ... } click to toggle source
# File lib/jbuilder/jpartial.rb, line 34
def self.configure
  yield Template.new
end
jpartial(name, &block) click to toggle source
# File lib/jbuilder/jpartial.rb, line 12
def self.jpartial(name, &block)
  _raise_dangerous_method_name_error(name) if _dangerous_method_name?(name)
  JbuilderProxy.class_eval { define_method(name, &block) }
  Jbuilder.class_eval do
    define_method(name) do |*args|
      JbuilderProxy.new(self, @context).__send__(name, *args)
    end
  end
  @defined_by_user << name unless @defined_by_user.include?(name)
end