Slide 1

Slide 1 text

3BJMT&OHJOFΛ 3BJMTʹରԠͤͨ͞࿩ ࡾଜӹོ !UBLLBON

Slide 2

Slide 2 text

BCPVU.F w &JXB4ZTUFN.BOBHFNFOU w "TBLVTBSC w ύʔϑΣΫτ3VCZࣥචϝϯόʔͷҰਓ

Slide 3

Slide 3 text

$PGGFF؀ڥ w ϛϧ͸ΧϦλͷύʔϑΣΫτλον w ՈͷυϦούʔ͸ϋϦΦ7 w ձࣾͰ͸ΤΞϩϓϨοι w ౾͸ΦϒεΩϡϥ͞Μͷίʔώʔఆظศ

Slide 4

Slide 4 text

ຊ୊

Slide 5

Slide 5 text

"EIPR w IUUQTHJUIVCDPNFTNJODBEIPR w 3BJMTΞϓϦέʔγϣϯʹ೚ҙͷΫΤϦΛ౤͛Ε ΔΑ͏ʹ͢ΔͨΊͷFOHJOF w ΫΤϦΛอଘͨ͠Γɺ݁ՌΛ೚ҙͷϑΥʔϚο τʹͯ͠ग़ྗ͢Δ͜ͱ͕Ͱ͖Δ

Slide 6

Slide 6 text

"EIPR

Slide 7

Slide 7 text

"EIPRϢʔεέʔε w ूܭΫΤϦͷಈ࡞֬ೝ w ఆظతʹಛఆͷूܭΛཔ·Εͨ࣌ʹΫΤϦΛอ ଘͯ͠࢖ͬͯ΋Β͏ w ো֐ରԠ౳Ͱσʔλͷ֬ೝΛߦ͏ࡍʹ

Slide 8

Slide 8 text

IUUQTHJUIVCDPN FTNJODBEIPRQVMM w 3BJMT͕ϦϦʔε͞ΕͨޙʹૹΒΕ͖ͯͨରԠ QVMMSFRVFTU w ͦͷ··Ͱ͸Ϛʔδͮ͠Β͔ͬͨͨΊɺ࡞ऀʹ मਖ਼Λґཔ͕ͨ͠ରԠ͞Εͣ

Slide 9

Slide 9 text

ࠓ೔ͷςʔϚ 3BJMTͰಈ࡞͠ͳ͍3BJMTFOHJOFΛ աڈͷόʔδϣϯͰͷಈ࡞Λอͪͭͭ Ξοϓσʔτ͓ͤͨ͞࿩ IUUQTHJUIVCDPNFTNJODBEIPRQVMM

Slide 10

Slide 10 text

3BJMTͰಈ࡞[ͤ͞ΔͨΊʹ ରԠͨ͜͠ͱ w IJEEFO@BDUJPO w "DUJPO$POUSPMMFS1BSBNFUFSTͷมߋ௥ ै w 3BJMTɹʹ޲͚ͯͷXBSOJOH࡟আ

Slide 11

Slide 11 text

IJEEFO@BDUJPO w 3BJMT͔Β͸IJEEFO@BDUJPOͱ͍͏ϝιου ͕࡟আ͞ΕͨJOOPDFODF w IJEEFO@BDUJPO͸ίϯτϩʔϥʔͷϝιου ΛΞΫγϣϯͱͯ͠ݟͤͳ͘͢ΔͨΊͷϝιο υ

Slide 12

Slide 12 text

มߋલ # app/controllers/adhoq/authorization_methods.rb module Adhoq module AuthorizationMethods extend ActiveSupport::Concern included do |controller| controller.before_filter Authorizer.new helper_method :adhoq_current_user hide_action :adhoq_current_user end def adhoq_current_user end end end

Slide 13

Slide 13 text

มߋޙ # app/controllers/adhoq/authorization_methods.rb module Adhoq module AuthorizationMethods extend ActiveSupport::Concern included do |controller| controller.before_filter Authorizer.new helper_method :adhoq_current_user end private def adhoq_current_user end end end

Slide 14

Slide 14 text

"DUJPO$POUSPMMFS1BSB NFUFSTͷมߋ௥ै w 3BJMTͰ"DUJPO$POUSPMMFS1BSBNFUFST ͕)BTIΛܧঝ͠ͳ͘ͳͬͨ w "DUJPO$POUSPMMFS1BSBNFUFSTͷΦϒδ ΣΫτΛͦͷ··"DUJWF+PCͷύϥϝʔλʔʹ ೖΕ͍ͯΔՕॴ͕͋ͬͨ

Slide 15

Slide 15 text

มߋલ w module Adhoq class ExecutionsController < Adhoq::ApplicationController def asynced_create Adhoq::ExecuteJob.perform_later(current_query, params[:execution][:report_format], query_parameters) redirect_to current_query end def query_parameters params[:parameters] || HashWithIndifferentAccess.new end end end

Slide 16

Slide 16 text

มߋޙ def query_parameters if params[:parameters] if params[:parameters].kind_of?(Hash) params[:parameters] else # for after Rails5 params[:parameters].to_unsafe_hash end else HashWithIndifferentAccess.new end end

Slide 17

Slide 17 text

3BJMT΁޲͚ͯͷ XBSOJOH࡟আ w CFGPSF@pMUFSΛCFGPSF@BDUJPO w DPOpHͷॻ͖ํมߋ UFTU w UJNFܕΧϥϜͷڍಈΛܾఆ UFTU

Slide 18

Slide 18 text

دΓಓɿXJDLFE@QEGʹߦ ͬͨ3BJMTରԠ w BMJBTF@NFUIPE@DIBJOΛQSFQFOEFEΛ ࢖͏Α͏ʹ w IUUQTHJUIVCDPNNJMFT[T XJDLFE@QEGQVMMpMFT

Slide 19

Slide 19 text

มߋલ w module PdfHelper def self.included(base) # Protect from trying to augment modules that appear # as the result of adding other gems. return if base != ActionController::Base base.class_eval do alias_method_chain :render, :wicked_pdf alias_method_chain :render_to_string, :wicked_pdf after_filter :clean_temp_files end end end

Slide 20

Slide 20 text

มߋલ w module PdfHelper def self.prepended(base) # Protect from trying to augment modules that appear # as the result of adding other gems. return if base != ActionController::Base base.class_eval do after_action :clean_temp_files alias_method :render_without_wicked_pdf, :render alias_method :render_to_string_without_wicked_pdf, :render_to_string def render(options = nil, *args, &block) render_with_wicked_pdf(options, *args, &block) end def render_to_string(options = nil, *args, &block) render_to_string_with_wicked_pdf(options, *args, &block) end end end end

Slide 21

Slide 21 text

ࠓޙͷͨΊʹ w ςετϚτϦοΫεͷ௥Ճ w FEHF3BJMTͱ࠷৽ͷ3VCZͷόʔδϣϯ ௥Ճ w αϙʔτόʔδϣϯͷมߋ w 3BJMTެࣜͱαϙʔτόʔδϣϯ͋Θͤͨ

Slide 22

Slide 22 text

·ͱΊ w ޙํޓ׵ੜΛอͪͳ͕Β௥ਵ͢Δͷେม w ಈ͍ͯͳͯ͘΋͍͍͔Β֬ೝͰ͖Δ؀ڥ͸༻ ҙ͓ͯ͜͠͏ w ͪΌΜͱಈ͘Α͏ʹͳͬͨͷͰؾʹͳͬͨํ ͸BEIPR࢖ͬͯΈ͍ͯͩ͘͞