RailsのURLが「http://foo.bar.com/」じゃなくて「http://foo.bar.com/prefix」だったりするとうまく動かなかったりしたので、アドホックに修正。
バージョンは3.0.0。
設定ファイル
↓のようにdatabase.ymlに「prefix」を追加。
development: ... shooting_star: server: storehouse.quickvps.net:13202 shooter: druby://0.0.0.0:7123 prefix: /masudaitter
vendor/plugins/meteor_strike/lib/meteor_strike.rb
24〜33行目
config['shooter'] ||= 'druby://localhost:7123' config['prefix'] ||= '' # <- 追加 server = config['server'].kind_of?(Array) ? config['server'][rand(config['server'].length)] : config['server'] shooting_star_uri = "#{server}/#{channel}" if config['random_subdomain'] && /[A-z]/ === server subdomain = (1..6).map{(rand(26)+?a).chr}.to_s shooting_star_uri = [subdomain, shooting_star_uri].join('.') end uri = url_for(:only_path => false).split('/')[0..2].join('/') + config['prefix'] # ~~~~~~~~~~~~~~~~~~~~追加 uid = options[:uid] ? CGI.escape(options[:uid].to_s) : ''
81〜83行目。プリフィックス関係ないと思うけど、なんでかエラーになった。
var noflash = #{options[:noflash].to_json}; if(noflash || typeof(flashVersion) == 'undefined' || flashVersion < 6){ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~修正 setTimeout(function(){
138〜149行目。
def flash_tag(flash_vars) config = ActiveRecord::Base.configurations[RAILS_ENV]['shooting_star'] # <- 追加 config['prefix'] ||= '' # <- 追加 flash_code_base = ['http://fpdownload.macromedia.com/', 'pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'].join('') swf_path = File.join(RAILS_ROOT, 'public/meteor_strike.swf') swf_timestamp = File.mtime(swf_path).to_i <<-"EOH" <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="#{flash_code_base}" width="0" height="0" id="meteor_strike_#{@meteor_strike}"> <param name="allowScriptAccess" value="sameDomain" /> <param name="FlashVars" value="#{flash_vars}" /> <param name="movie" value="#{config['prefix']}/meteor_strike.swf?#{swf_timestamp}" /> # ~~~~~~~~~~~~~~~~~~~追加 <param name="menu" value="false" />
shooting_star-3.0.0/lib/shooting_star/server.rb
256〜258行目。
assets = URI.parse(@params['execute']) #assets.path = '/javascripts/prototype.js' assets.path = '/masudaitter/javascripts/prototype.js' # ~~~~~~~~~~~~~ 設定ファイルの読み込み方が分からなかったのでハードコーディング assets.query = assets.fragment = nil