ParamsInquirer on Rails
def index
if params[:status].accepted?
# ...
elsif params[:status].rejected?
# ...
end
end
131݄31༵
Slide 6
Slide 6 text
Railtie
class Railtie < ::Rails::Railtie
initializer ‘Initialize your gem’ do
ActiveSupport.on_load(:action_controller) do
::ActionController::Base.send :include,
ParamsInquirer::ActionController::Base
end
end
end
131݄31༵
Slide 7
Slide 7 text
action_controller/base.rb
module ActionController
class Base < Metal
# ...
ActiveSupport.run_load_hooks(:action_controller,
self)
end
end
131݄31༵
Slide 8
Slide 8 text
lib/params_inquirer.rb
if defined?(Rails)
require ‘params_inquirer/railtie’
else
require ‘params_inquirer/parameters’
end
131݄31༵
Slide 9
Slide 9 text
ActiveSupport::Concern
module M
def self.included(self)
base.extend ClassMethods
scope :disabled, where(disabled: true)
end
module ClassMethods
# ...
end
end
131݄31༵
Slide 10
Slide 10 text
ActiveSupport::Concern
module M
extend ActiveSupport::Concern
included do
scope :disabled, where(disabled: true)
end
module ClassMethods
# ...
end
end
131݄31༵
Slide 11
Slide 11 text
ActiveSupport::Autoload
autoload(:Hoge, ‘hoge’)
# ‘hoge.rb‘͜ͷ࣌Ͱrequire͞Ε͍ͯͳ͍
p Hoge
# ͜͜Ͱ‘hoge.rb’͕require͞ΕΔ
extend ActiceSupport::Autoload
autoload :Fuga
p Fuga
# ͜͜Ͱ‘fuga.rb’͕require͞ΕΔ
131݄31༵