forked from OpenNeo/impress
give SWFs real, unique ID numbers
Lots of scary bugs were being caused by the fact that the possibly-duplicate Neopets ID was being treated as an SWF's real primary key, meaning that a save meant for object swf number 123 could be saved to biology swf number 123. Which is awful. This update gives SWFs their own unique internal ID numbers. All external lookups still use the remote ID and the type, meaning that the client side remains totally unchanged (phew). However, all database relationships with SWFs use the new ID numbers, making everything cleaner. Yay. There are probably a few places where it would be appropriate to optimize certain lookups that still depend on remote ID and type. Whatever. Today's goal was to remove crazy glitches that have been floating around like mad. And I think that goal has been met.
This commit is contained in:
parent
bdb2dfd97a
commit
696b2aedaf
94 changed files with 222 additions and 164 deletions
2
Gemfile
2
Gemfile
|
@ -1,6 +1,6 @@
|
|||
source 'http://rubygems.org'
|
||||
|
||||
gem 'rails', '3.0.4'
|
||||
gem 'rails', '3.0.5'
|
||||
#gem 'sqlite3-ruby', '~> 1.3.1', :require => 'sqlite3'
|
||||
|
||||
gem 'compass', '~> 0.10.1'
|
||||
|
|
159
Gemfile.lock
159
Gemfile.lock
|
@ -1,55 +1,61 @@
|
|||
GIT
|
||||
remote: git://github.com/eventmachine/eventmachine.git
|
||||
revision: 1d9b28eae110457ef3915aef380319a95697a167
|
||||
revision: 69151c3ebb3e4ecf2bb9b6e2fab2022dc34f8541
|
||||
specs:
|
||||
eventmachine (1.0.0.beta.2)
|
||||
eventmachine (1.0.0.beta.4)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/igrigorik/em-http-request.git
|
||||
revision: bbf9c11e02aaa91f5d1149319dcab59f410426e8
|
||||
revision: ce50f322ce08d43a4a747cf333ea576765d764c4
|
||||
specs:
|
||||
em-http-request (0.3.0)
|
||||
addressable (>= 2.0.0)
|
||||
escape_utils
|
||||
eventmachine (>= 0.12.9)
|
||||
em-http-request (1.0.1)
|
||||
addressable (>= 2.2.3)
|
||||
cookiejar
|
||||
em-socksify
|
||||
eventmachine (>= 1.0.0.beta.4)
|
||||
http_parser.rb (>= 0.5.3)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/igrigorik/em-mysqlplus.git
|
||||
revision: 35320562abc914cc7d9fd203abb746f99796739e
|
||||
revision: 11d6e1123654b948c1d0a8c9d9077e82420b2846
|
||||
specs:
|
||||
em-mysqlplus (0.1.5)
|
||||
eventmachine (>= 0.12.9)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/igrigorik/em-synchrony.git
|
||||
revision: f59169c5c8f893336802f1de2970ee9dd8755158
|
||||
revision: c7209a58f9eb92e1dc81fb141297f9f257c2fdcb
|
||||
specs:
|
||||
em-synchrony (0.2.0)
|
||||
eventmachine (>= 0.12.9)
|
||||
em-synchrony (1.0.0)
|
||||
eventmachine (>= 1.0.0.beta.1)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/oldmoe/mysqlplus.git
|
||||
revision: 2daef86c487ec1c531ecfe84ed342d15a1c89554
|
||||
revision: 3dbaa7c00ff0bb75ad9538cdef176c72de35d231
|
||||
specs:
|
||||
mysqlplus (0.1.1)
|
||||
|
||||
GIT
|
||||
remote: git://github.com/rubyamf/rocketamf.git
|
||||
revision: fdef9d836f1ed27b06ce669ea05122fa0dec4a12
|
||||
revision: ed82db7659f624d6c3ca244e4127dad270a484c7
|
||||
specs:
|
||||
RocketAMF (1.0.0)
|
||||
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
POpen4 (0.1.4)
|
||||
Platform (>= 0.4.0)
|
||||
open4
|
||||
Platform (0.4.0)
|
||||
aaronh-chronic (0.3.9)
|
||||
abstract (1.0.0)
|
||||
actionmailer (3.0.4)
|
||||
actionpack (= 3.0.4)
|
||||
actionmailer (3.0.5)
|
||||
actionpack (= 3.0.5)
|
||||
mail (~> 2.2.15)
|
||||
actionpack (3.0.4)
|
||||
activemodel (= 3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
actionpack (3.0.5)
|
||||
activemodel (= 3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
builder (~> 2.1.2)
|
||||
erubis (~> 2.6.6)
|
||||
i18n (~> 0.4)
|
||||
|
@ -57,83 +63,88 @@ GEM
|
|||
rack-mount (~> 0.6.13)
|
||||
rack-test (~> 0.5.7)
|
||||
tzinfo (~> 0.3.23)
|
||||
activemodel (3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
activemodel (3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
builder (~> 2.1.2)
|
||||
i18n (~> 0.4)
|
||||
activerecord (3.0.4)
|
||||
activemodel (= 3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
activerecord (3.0.5)
|
||||
activemodel (= 3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
arel (~> 2.0.2)
|
||||
tzinfo (~> 0.3.23)
|
||||
activeresource (3.0.4)
|
||||
activemodel (= 3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
activesupport (3.0.4)
|
||||
addressable (2.2.4)
|
||||
arel (2.0.8)
|
||||
activeresource (3.0.5)
|
||||
activemodel (= 3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
activesupport (3.0.5)
|
||||
addressable (2.2.6)
|
||||
arel (2.0.10)
|
||||
bcrypt-ruby (2.1.4)
|
||||
builder (2.1.2)
|
||||
character-encodings (0.4.1)
|
||||
closure-compiler (1.0.0)
|
||||
closure-compiler (1.1.4)
|
||||
compass (0.10.6)
|
||||
haml (>= 3.0.4)
|
||||
devise (1.1.5)
|
||||
cookiejar (0.3.0)
|
||||
devise (1.1.9)
|
||||
bcrypt-ruby (~> 2.1.2)
|
||||
warden (~> 1.0.2)
|
||||
diff-lcs (1.1.2)
|
||||
diff-lcs (1.1.3)
|
||||
em-socksify (0.1.0)
|
||||
eventmachine
|
||||
erubis (2.6.6)
|
||||
abstract (>= 1.0.0)
|
||||
escape_utils (0.1.9)
|
||||
factory_girl (1.3.3)
|
||||
factory_girl_rails (1.0.1)
|
||||
factory_girl (~> 1.3)
|
||||
factory_girl (2.3.2)
|
||||
activesupport
|
||||
factory_girl_rails (1.4.0)
|
||||
factory_girl (~> 2.3.0)
|
||||
railties (>= 3.0.0)
|
||||
haml (3.0.25)
|
||||
hoptoad_notifier (2.4.5)
|
||||
hoptoad_notifier (2.4.11)
|
||||
activesupport
|
||||
builder
|
||||
i18n (0.5.0)
|
||||
http_parser.rb (0.5.3)
|
||||
i18n (0.6.0)
|
||||
jammit (0.5.4)
|
||||
closure-compiler (>= 0.1.0)
|
||||
yui-compressor (>= 0.9.1)
|
||||
json (1.4.6)
|
||||
mail (2.2.15)
|
||||
mail (2.2.19)
|
||||
activesupport (>= 2.3.6)
|
||||
i18n (>= 0.4.0)
|
||||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
memcache-client (1.8.5)
|
||||
mime-types (1.16)
|
||||
msgpack (0.4.4)
|
||||
mysql2 (0.2.6)
|
||||
mime-types (1.17.2)
|
||||
msgpack (0.4.6)
|
||||
mysql2 (0.3.11)
|
||||
nokogiri (1.5.0)
|
||||
open4 (1.3.0)
|
||||
openneo-auth-signatory (0.1.0)
|
||||
ruby-hmac
|
||||
polyglot (0.3.1)
|
||||
rack (1.2.3)
|
||||
rack-fiber_pool (0.9.1)
|
||||
rack-mount (0.6.13)
|
||||
polyglot (0.3.3)
|
||||
rack (1.2.5)
|
||||
rack-fiber_pool (0.9.2)
|
||||
rack-mount (0.6.14)
|
||||
rack (>= 1.0.0)
|
||||
rack-test (0.5.7)
|
||||
rack (>= 1.0)
|
||||
rails (3.0.4)
|
||||
actionmailer (= 3.0.4)
|
||||
actionpack (= 3.0.4)
|
||||
activerecord (= 3.0.4)
|
||||
activeresource (= 3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
rails (3.0.5)
|
||||
actionmailer (= 3.0.5)
|
||||
actionpack (= 3.0.5)
|
||||
activerecord (= 3.0.5)
|
||||
activeresource (= 3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
bundler (~> 1.0)
|
||||
railties (= 3.0.4)
|
||||
railties (3.0.4)
|
||||
actionpack (= 3.0.4)
|
||||
activesupport (= 3.0.4)
|
||||
railties (= 3.0.5)
|
||||
railties (3.0.5)
|
||||
actionpack (= 3.0.5)
|
||||
activesupport (= 3.0.5)
|
||||
rake (>= 0.8.7)
|
||||
thor (~> 0.14.4)
|
||||
rake (0.8.7)
|
||||
rake (0.9.2.2)
|
||||
rdiscount (1.6.8)
|
||||
redis (2.2.1)
|
||||
redis-namespace (1.0.3)
|
||||
redis (2.2.2)
|
||||
redis-namespace (1.1.0)
|
||||
redis (< 3.0.0)
|
||||
resque (1.15.0)
|
||||
json (~> 1.4.6)
|
||||
|
@ -143,9 +154,9 @@ GEM
|
|||
resque-retry (0.1.0)
|
||||
resque (>= 1.8.0)
|
||||
resque-scheduler (>= 1.8.0)
|
||||
resque-scheduler (2.0.0.d)
|
||||
resque-scheduler (2.0.0.e)
|
||||
redis (>= 2.0.1)
|
||||
resque (>= 1.8.0)
|
||||
resque (>= 1.15.0)
|
||||
rufus-scheduler
|
||||
right_aws (2.1.0)
|
||||
right_http_connection (>= 1.2.5)
|
||||
|
@ -163,28 +174,30 @@ GEM
|
|||
rspec-rails (2.0.1)
|
||||
rspec (~> 2.0.0)
|
||||
ruby-hmac (0.4.0)
|
||||
rufus-scheduler (2.0.9)
|
||||
rufus-scheduler (2.0.16)
|
||||
tzinfo (>= 0.3.23)
|
||||
sanitize (2.0.3)
|
||||
nokogiri (< 1.6, >= 1.4.4)
|
||||
sinatra (1.2.6)
|
||||
sinatra (1.2.8)
|
||||
rack (~> 1.1)
|
||||
tilt (< 2.0, >= 1.2.2)
|
||||
tilt (>= 1.2.2, < 2.0)
|
||||
swf_converter (0.0.3)
|
||||
thor (0.14.6)
|
||||
tilt (1.3.2)
|
||||
treetop (1.4.9)
|
||||
tilt (1.3.3)
|
||||
treetop (1.4.10)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
tzinfo (0.3.28)
|
||||
tzinfo (0.3.31)
|
||||
vegas (0.1.8)
|
||||
rack (>= 1.0.0)
|
||||
warden (1.0.3)
|
||||
rack (>= 1.0.0)
|
||||
whenever (0.6.2)
|
||||
warden (1.0.6)
|
||||
rack (>= 1.0)
|
||||
whenever (0.6.8)
|
||||
aaronh-chronic (>= 0.3.9)
|
||||
activesupport (>= 2.3.4)
|
||||
will_paginate (3.0.pre2)
|
||||
yui-compressor (0.9.3)
|
||||
will_paginate (3.0.2)
|
||||
yui-compressor (0.9.6)
|
||||
POpen4 (>= 0.1.4)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -210,7 +223,7 @@ DEPENDENCIES
|
|||
nokogiri (~> 1.5.0)
|
||||
openneo-auth-signatory (~> 0.1.0)
|
||||
rack-fiber_pool
|
||||
rails (= 3.0.4)
|
||||
rails (= 3.0.5)
|
||||
rdiscount (~> 1.6.5)
|
||||
resque (~> 1.15.0)
|
||||
resque-retry (~> 0.1.0)
|
||||
|
|
|
@ -3,14 +3,16 @@ class BrokenImageReportsController < ApplicationController
|
|||
ids = params[:asset_ids]
|
||||
assets = SwfAsset.arel_table
|
||||
@swf_assets = SwfAsset.where(:has_image => true).where((
|
||||
assets[:id].in(ids[:biology]).and(assets[:type].eq('biology'))
|
||||
assets[:remote_id].in(ids[:biology]).and(assets[:type].eq('biology'))
|
||||
).or(
|
||||
assets[:id].in(ids[:object]).and(assets[:type].eq('object'))
|
||||
assets[:remote_id].in(ids[:object]).and(assets[:type].eq('object'))
|
||||
))
|
||||
end
|
||||
|
||||
def create
|
||||
swf_asset = SwfAsset.find params[:swf_asset_id]
|
||||
swf_asset = SwfAsset.where(:type => params[:swf_asset_type]).
|
||||
find_by_remote_id(params[:swf_asset_remote_id])
|
||||
|
||||
|
||||
if swf_asset.report_broken
|
||||
flash[:success] = "Thanks! This image will be reconverted soon. If it " +
|
||||
|
|
|
@ -29,10 +29,10 @@ class SwfAssetsController < ApplicationController
|
|||
elsif params[:ids]
|
||||
@swf_assets = []
|
||||
if params[:ids][:biology]
|
||||
@swf_assets += SwfAsset.biology_assets.where(:id => params[:ids][:biology]).all
|
||||
@swf_assets += SwfAsset.biology_assets.where(:remote_id => params[:ids][:biology]).all
|
||||
end
|
||||
if params[:ids][:object]
|
||||
@swf_assets += SwfAsset.object_assets.where(:id => params[:ids][:object]).all
|
||||
@swf_assets += SwfAsset.object_assets.where(:remote_id => params[:ids][:object]).all
|
||||
end
|
||||
end
|
||||
if @swf_assets
|
||||
|
|
|
@ -8,8 +8,8 @@ class AssetImageConversionRequest
|
|||
|
||||
@queue = :requested_asset_images
|
||||
|
||||
def self.perform(asset_type, asset_id)
|
||||
asset = SwfAsset.where(:type => asset_type).find(asset_id)
|
||||
def self.perform(asset_id)
|
||||
asset = SwfAsset.find(asset_id)
|
||||
asset.convert_swf_if_not_converted!
|
||||
end
|
||||
|
||||
|
|
|
@ -7,10 +7,8 @@ class Item < ActiveRecord::Base
|
|||
|
||||
has_many :closet_hangers
|
||||
has_one :contribution, :as => :contributed
|
||||
has_many :parent_swf_asset_relationships, :foreign_key => 'parent_id',
|
||||
:conditions => {:swf_asset_type => SwfAssetType}
|
||||
has_many :swf_assets, :through => :parent_swf_asset_relationships, :source => :object_asset,
|
||||
:conditions => {:type => SwfAssetType}
|
||||
has_many :parent_swf_asset_relationships, :as => :parent
|
||||
has_many :swf_assets, :through => :parent_swf_asset_relationships
|
||||
|
||||
attr_writer :current_body_id, :owned, :wanted
|
||||
|
||||
|
@ -29,14 +27,7 @@ class Item < ActiveRecord::Base
|
|||
|
||||
scope :alphabetize, order('name ASC')
|
||||
|
||||
scope :join_swf_assets, joins("INNER JOIN #{ParentSwfAssetRelationship.table_name} psa ON psa.swf_asset_type = 'object' AND psa.parent_id = objects.id").
|
||||
joins("INNER JOIN #{SwfAsset.table_name} swf_assets ON swf_assets.id = psa.swf_asset_id").
|
||||
group('objects.id')
|
||||
|
||||
scope :without_swf_assets, joins(
|
||||
"LEFT JOIN #{ParentSwfAssetRelationship.table_name} psa ON psa.swf_asset_type = 'object' AND psa.parent_id = #{table_name}.id " +
|
||||
"LEFT JOIN #{SwfAsset.table_name} sa ON sa.type = 'object' AND sa.id = psa.swf_asset_id"
|
||||
).where('sa.id IS NULL')
|
||||
scope :join_swf_assets, joins(:swf_assets).group('objects.id')
|
||||
|
||||
scope :newest, order(arel_table[:created_at].desc) if arel_table[:created_at]
|
||||
|
||||
|
@ -191,15 +182,13 @@ class Item < ActiveRecord::Base
|
|||
# but doesn't in this sample, the two have been unbound. Delete the
|
||||
# relationship.
|
||||
ids_to_delete = self.parent_swf_asset_relationships.
|
||||
select(:id).
|
||||
joins(:object_asset).
|
||||
select(:remote_id).
|
||||
joins(:swf_asset).
|
||||
where(rels[:swf_asset_id].not_in(new_swf_asset_ids)).
|
||||
where(swf_assets[:body_id].in([@current_body_id, 0])).
|
||||
map(&:id)
|
||||
map(&:remote_id)
|
||||
unless ids_to_delete.empty?
|
||||
ParentSwfAssetRelationship.
|
||||
where(rels[:parent_id].eq(self.id)).
|
||||
where(rels[:swf_asset_type].eq(SwfAssetType)).
|
||||
self.parent_swf_asset_relationships.
|
||||
where(rels[:swf_asset_id].in(ids_to_delete)).
|
||||
delete_all
|
||||
end
|
||||
|
@ -241,7 +230,10 @@ class Item < ActiveRecord::Base
|
|||
swf_assets_by_id[id] = swf_asset
|
||||
swf_asset_ids << id
|
||||
end
|
||||
SwfAsset.select('id, parent_id').object_assets.joins(:object_asset_relationships).
|
||||
SwfAsset.select([
|
||||
SwfAsset.arel_table[:id],
|
||||
ParentSwfAssetRelationship.arel_table[:parent_id]
|
||||
]).object_assets.joins(:parent_swf_asset_relationships).
|
||||
where(SwfAsset.arel_table[:id].in(swf_asset_ids)).each do |row|
|
||||
item_id = row.parent_id.to_i
|
||||
swf_assets_by_parent_id[item_id] ||= []
|
||||
|
@ -291,7 +283,7 @@ class Item < ActiveRecord::Base
|
|||
asset_registry.each do |asset_id, asset_data|
|
||||
swf_asset_ids << asset_id.to_i if asset_data
|
||||
end
|
||||
existing_swf_assets = SwfAsset.object_assets.find_all_by_id swf_asset_ids
|
||||
existing_swf_assets = SwfAsset.object_assets.find_all_by_remote_id swf_asset_ids
|
||||
existing_swf_assets_by_id = {}
|
||||
existing_swf_assets.each do |swf_asset|
|
||||
existing_swf_assets_by_id[swf_asset.id] = swf_asset
|
||||
|
@ -318,7 +310,7 @@ class Item < ActiveRecord::Base
|
|||
swf_asset = existing_swf_assets_by_id[swf_asset_id]
|
||||
unless swf_asset
|
||||
swf_asset = SwfAsset.new
|
||||
swf_asset.id = swf_asset_id
|
||||
swf_asset.remote_id = swf_asset_id
|
||||
end
|
||||
swf_asset.origin_object_data = asset_data
|
||||
swf_asset.origin_pet_type = pet_type
|
||||
|
@ -327,11 +319,10 @@ class Item < ActiveRecord::Base
|
|||
relationship = existing_relationships_by_item_id_and_swf_asset_id[item.id][swf_asset_id] rescue nil
|
||||
unless relationship
|
||||
relationship = ParentSwfAssetRelationship.new
|
||||
relationship.parent_id = item.id
|
||||
relationship.swf_asset_type = SwfAssetType
|
||||
relationship.parent = item
|
||||
relationship.swf_asset_id = swf_asset.id
|
||||
end
|
||||
relationship.object_asset = swf_asset
|
||||
relationship.swf_asset = swf_asset
|
||||
relationships_by_item_id[item_id] ||= []
|
||||
relationships_by_item_id[item_id] << relationship
|
||||
end
|
||||
|
@ -787,7 +778,7 @@ class Item < ActiveRecord::Base
|
|||
# the zone requirement. If that max was NULL, return the object.
|
||||
item_ids = select(arel_table[:id]).joins(
|
||||
"LEFT JOIN #{ParentSwfAssetRelationship.table_name} #{psa.name} ON " +
|
||||
psa[:swf_asset_type].eq(SwfAssetType).
|
||||
psa[:parent_type].eq(self.name).
|
||||
and(psa[:parent_id].eq(arel_table[:id])).
|
||||
to_sql
|
||||
).
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
class ParentSwfAssetRelationship < ActiveRecord::Base
|
||||
set_table_name 'parents_swf_assets'
|
||||
|
||||
belongs_to :item, :foreign_key => 'parent_id'
|
||||
belongs_to :parent, :polymorphic => true
|
||||
|
||||
belongs_to :biology_asset, :class_name => 'SwfAsset', :foreign_key => 'swf_asset_id', :conditions => {:type => 'biology'}
|
||||
belongs_to :object_asset, :class_name => 'SwfAsset', :foreign_key => 'swf_asset_id', :conditions => {:type => 'object'}
|
||||
|
||||
def swf_asset
|
||||
self.swf_asset_type == 'biology' ? self.biology_asset : self.object_asset
|
||||
end
|
||||
belongs_to :swf_asset
|
||||
|
||||
def item=(replacement)
|
||||
self.parent_id = replacement.id
|
||||
self.parent = replacement
|
||||
end
|
||||
|
||||
def pet_state
|
||||
|
@ -19,6 +14,6 @@ class ParentSwfAssetRelationship < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def pet_state=(replacement)
|
||||
self.parent_id = replacement.id
|
||||
self.parent = replacement
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,10 +3,8 @@ class PetState < ActiveRecord::Base
|
|||
|
||||
has_many :contributions, :as => :contributed # in case of duplicates being merged
|
||||
has_many :outfits
|
||||
has_many :parent_swf_asset_relationships, :foreign_key => 'parent_id',
|
||||
:conditions => {:swf_asset_type => SwfAssetType}
|
||||
has_many :swf_assets, :through => :parent_swf_asset_relationships, :source => :biology_asset,
|
||||
:conditions => {:type => SwfAssetType}
|
||||
has_many :parent_swf_asset_relationships, :foreign_key => 'parent_id'
|
||||
has_many :swf_assets, :through => :parent_swf_asset_relationships
|
||||
|
||||
belongs_to :pet_type
|
||||
|
||||
|
@ -14,9 +12,9 @@ class PetState < ActiveRecord::Base
|
|||
|
||||
bio_effect_zone_id = 4
|
||||
scope :emotion_order, joins(:parent_swf_asset_relationships).
|
||||
joins("LEFT JOIN swf_assets effect_assets ON effect_assets.id = parents_swf_assets.swf_asset_id AND effect_assets.type = 'biology' AND effect_assets.zone_id = #{bio_effect_zone_id}").
|
||||
joins("LEFT JOIN swf_assets effect_assets ON effect_assets.remote_id = parents_swf_assets.swf_asset_id AND effect_assets.zone_id = #{bio_effect_zone_id}").
|
||||
group("pet_states.id").
|
||||
order("COUNT(effect_assets.id) ASC, COUNT(parents_swf_assets.swf_asset_id) DESC, SUM(parents_swf_assets.swf_asset_id) ASC")
|
||||
order("COUNT(effect_assets.remote_id) ASC, COUNT(parents_swf_assets.swf_asset_id) DESC, SUM(parents_swf_assets.swf_asset_id) ASC")
|
||||
|
||||
def reassign_children_to!(main_pet_state)
|
||||
self.contributions.each do |contribution|
|
||||
|
@ -76,7 +74,7 @@ class PetState < ActiveRecord::Base
|
|||
swf_asset_ids_str
|
||||
)
|
||||
end
|
||||
existing_swf_assets = SwfAsset.biology_assets.find_all_by_id(swf_asset_ids)
|
||||
existing_swf_assets = SwfAsset.biology_assets.find_all_by_remote_id(swf_asset_ids)
|
||||
existing_swf_assets_by_id = {}
|
||||
existing_swf_assets.each do |swf_asset|
|
||||
existing_swf_assets_by_id[swf_asset.id] = swf_asset
|
||||
|
@ -95,18 +93,17 @@ class PetState < ActiveRecord::Base
|
|||
swf_asset = existing_swf_assets_by_id[swf_asset_id]
|
||||
unless swf_asset
|
||||
swf_asset = SwfAsset.new
|
||||
swf_asset.id = swf_asset_id
|
||||
swf_asset.remote_id = swf_asset_id
|
||||
end
|
||||
swf_asset.origin_biology_data = asset_info
|
||||
swf_asset.origin_pet_type = pet_type
|
||||
relationship = existing_relationships_by_swf_asset_id[swf_asset_id]
|
||||
unless relationship
|
||||
relationship ||= ParentSwfAssetRelationship.new
|
||||
relationship.parent_id = pet_state.id
|
||||
relationship.swf_asset_type = SwfAssetType
|
||||
relationship.parent = pet_state
|
||||
relationship.swf_asset_id = swf_asset.id
|
||||
end
|
||||
relationship.biology_asset = swf_asset
|
||||
relationship.swf_asset = swf_asset
|
||||
relationships << relationship
|
||||
end
|
||||
end
|
||||
|
|
|
@ -41,7 +41,11 @@ class PetType < ActiveRecord::Base
|
|||
|
||||
def as_json(options={})
|
||||
if options[:for] == 'wardrobe'
|
||||
{:id => id, :body_id => body_id, :pet_state_ids => pet_states.select('pet_states.id').emotion_order.map(&:id)}
|
||||
{
|
||||
:id => id,
|
||||
:body_id => body_id,
|
||||
:pet_state_ids => pet_state_ids
|
||||
}
|
||||
else
|
||||
{:image_hash => image_hash}
|
||||
end
|
||||
|
@ -103,7 +107,8 @@ class PetType < ActiveRecord::Base
|
|||
species_condition = condition
|
||||
end
|
||||
end
|
||||
unneeded_item_ids = Item.select(items[:id]).joins(:parent_swf_asset_relationships => :object_asset).
|
||||
unneeded_item_ids = Item.select(items[:id]).
|
||||
joins(:parent_swf_asset_relationships => :swf_asset).
|
||||
where(SwfAsset.arel_table[:body_id].in([0, self.body_id])).map(&:id)
|
||||
Item.where(items[:id].not_in(unneeded_item_ids)).
|
||||
where(species_condition)
|
||||
|
@ -114,6 +119,10 @@ class PetType < ActiveRecord::Base
|
|||
pet_state
|
||||
end
|
||||
|
||||
def pet_state_ids
|
||||
pet_states.select('pet_states.id').emotion_order.map(&:id)
|
||||
end
|
||||
|
||||
before_save do
|
||||
if @origin_pet && @origin_pet.name =~ IMAGE_CPN_ACCEPTABLE_NAME
|
||||
cpn_uri = URI.parse sprintf(IMAGE_CPN_FORMAT, CGI.escape(@origin_pet.name));
|
||||
|
|
|
@ -57,7 +57,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def s3_path
|
||||
"#{self['type']}/#{s3_partition_path}#{self.id}"
|
||||
"#{self['type']}/#{s3_partition_path}#{self.remote_id}"
|
||||
end
|
||||
|
||||
def s3_url(size)
|
||||
|
@ -68,7 +68,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
PARTITION_DIGITS = 3
|
||||
PARTITION_ID_LENGTH = PARTITION_COUNT * PARTITION_DIGITS
|
||||
def s3_partition_path
|
||||
(id / 10**PARTITION_DIGITS).to_s.rjust(PARTITION_ID_LENGTH, '0').tap do |id_str|
|
||||
(remote_id / 10**PARTITION_DIGITS).to_s.rjust(PARTITION_ID_LENGTH, '0').tap do |id_str|
|
||||
PARTITION_COUNT.times do |n|
|
||||
id_str.insert(PARTITION_ID_LENGTH - (n * PARTITION_DIGITS), '/')
|
||||
end
|
||||
|
@ -88,7 +88,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
if image_requested?
|
||||
false
|
||||
else
|
||||
Resque.enqueue(AssetImageConversionRequest, self.type, self.id)
|
||||
Resque.enqueue(AssetImageConversionRequest, self.id)
|
||||
self.image_requested = true
|
||||
save!
|
||||
true
|
||||
|
@ -100,7 +100,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
return false
|
||||
end
|
||||
|
||||
Resque.enqueue(AssetImageConversionRequest::OnBrokenImageReport, self.type, self.id)
|
||||
Resque.enqueue(AssetImageConversionRequest::OnBrokenImageReport, self.id)
|
||||
self.reported_broken_at = Time.now
|
||||
self.save
|
||||
end
|
||||
|
@ -119,8 +119,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
attr_accessor :item
|
||||
|
||||
has_one :contribution, :as => :contributed
|
||||
has_many :object_asset_relationships, :class_name => 'ParentSwfAssetRelationship',
|
||||
:conditions => {:swf_asset_type => 'object'}
|
||||
has_many :parent_swf_asset_relationships
|
||||
|
||||
delegate :depth, :to => :zone
|
||||
|
||||
|
@ -144,7 +143,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
scope :biology_assets, where(:type => PetState::SwfAssetType)
|
||||
scope :object_assets, where(:type => Item::SwfAssetType)
|
||||
scope :for_item_ids, lambda { |item_ids|
|
||||
joins(:object_asset_relationships).
|
||||
joins(:parent_swf_asset_relationships).
|
||||
where(ParentSwfAssetRelationship.arel_table[:parent_id].in(item_ids))
|
||||
}
|
||||
|
||||
|
@ -154,7 +153,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
|
||||
def as_json(options={})
|
||||
json = {
|
||||
:id => id,
|
||||
:id => remote_id,
|
||||
:type => type,
|
||||
:depth => depth,
|
||||
:body_id => body_id,
|
||||
|
@ -236,7 +235,7 @@ class SwfAsset < ActiveRecord::Base
|
|||
end
|
||||
|
||||
after_commit :on => :create do
|
||||
Resque.enqueue(AssetImageConversionRequest::OnCreation, self.type, self.id)
|
||||
Resque.enqueue(AssetImageConversionRequest::OnCreation, self.id)
|
||||
end
|
||||
|
||||
class DownloadError < Exception;end
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
module SwfAssetParent
|
||||
def swf_assets
|
||||
rels = ParentSwfAssetRelationship.arel_table
|
||||
type = self.class::SwfAssetType
|
||||
ids = ParentSwfAssetRelationship.
|
||||
where(rels[:parent_id].eq(id).and(rels[:swf_asset_type].eq(type))).
|
||||
select(rels[:swf_asset_id]).
|
||||
all.map(&:swf_asset_id)
|
||||
assets = SwfAsset.arel_table
|
||||
SwfAsset.where(assets[:id].in(ids).and(assets[:type].eq(type)))
|
||||
end
|
||||
end
|
|
@ -15,7 +15,8 @@
|
|||
= link_to image_tag(swf_asset.s3_url([150, 150])), swf_asset.url
|
||||
- unless swf_asset.image_pending_repair?
|
||||
= form_tag(:action => :create) do
|
||||
= hidden_field_tag 'swf_asset_id', swf_asset.id
|
||||
= hidden_field_tag 'swf_asset_remote_id', swf_asset.remote_id
|
||||
= hidden_field_tag 'swf_asset_type', swf_asset.type
|
||||
= submit_tag 'Report as broken'
|
||||
|
||||
- if swf_asset.converted_at?
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<p class="warning">
|
||||
Dress to Impress is scheduled to go down for maintenance
|
||||
<strong>tonight at 6 PM NST</strong>.
|
||||
The <a href="http://oldimpress.openneo.net/">old server</a> will still be
|
||||
online, and we expect to be done in less than an hour.
|
||||
Thanks for understanding.
|
||||
</p>
|
|
@ -0,0 +1,55 @@
|
|||
class RenameSwfAssetsIdToRemoteId < ActiveRecord::Migration
|
||||
def self.up
|
||||
rename_column :swf_assets, :id, :remote_id
|
||||
add_column :swf_assets, :id, :primary_key
|
||||
|
||||
Contribution.where(:contributed_type => 'SwfAsset').find_each do |c|
|
||||
# Use real IDs instead of remote IDs
|
||||
swf_asset = SwfAsset.object_assets.
|
||||
find_by_remote_id(c.contributed_id)
|
||||
c.contributed_id = swf_asset.id
|
||||
c.save!
|
||||
end
|
||||
puts "Updated contributions"
|
||||
|
||||
add_column :parents_swf_assets, :id, :primary_key
|
||||
add_column :parents_swf_assets, :parent_type, :string, :null => false,
|
||||
:limit => 8
|
||||
ParentSwfAssetRelationship.all.each do |rel|
|
||||
swf_asset = SwfAsset.where(:type => rel.swf_asset_type).
|
||||
find_by_remote_id(rel.swf_asset_id)
|
||||
rel.swf_asset_id = swf_asset.id
|
||||
rel.parent_type = (rel.swf_asset_type == 'biology') ? 'PetState' : 'Item'
|
||||
rel.save!
|
||||
end
|
||||
puts "Updated parent/asset relationships"
|
||||
|
||||
remove_column :parents_swf_assets, :swf_asset_type
|
||||
end
|
||||
|
||||
def self.down
|
||||
add_column :parents_swf_assets, :swf_asset_type, :string,
|
||||
:null => false, :limit => 7
|
||||
|
||||
ParentSwfAssetRelationship.all.each do |rel|
|
||||
swf_asset = SwfAsset.find(rel.swf_asset_id)
|
||||
rel.swf_asset_id = swf_asset.remote_id
|
||||
rel.swf_asset_type = swf_asset.type
|
||||
rel.save!
|
||||
end
|
||||
remove_column :parents_swf_assets, :parent_type
|
||||
remove_column :parents_swf_assets, :id
|
||||
puts "Updated parent/asset relationships"
|
||||
|
||||
Contribution.where(:contributed_type => 'SwfAsset').find_each do |c|
|
||||
# Use remote IDs instead of real IDs
|
||||
swf_asset = SwfAsset.find(c.swf_asset_id)
|
||||
c.contributed_id = swf_asset.remote_id
|
||||
c.save!
|
||||
end
|
||||
puts "Updated contributions"
|
||||
|
||||
remove_column :swf_assets, :id
|
||||
rename_column :swf_assets, :remote_id, :id
|
||||
end
|
||||
end
|
27
db/schema.rb
27
db/schema.rb
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20110807212936) do
|
||||
ActiveRecord::Schema.define(:version => 20120112204234) do
|
||||
|
||||
create_table "auth_servers", :force => true do |t|
|
||||
t.string "short_name", :limit => 10, :null => false
|
||||
|
@ -40,6 +40,11 @@ ActiveRecord::Schema.define(:version => 20110807212936) do
|
|||
t.integer "visibility", :default => 1, :null => false
|
||||
end
|
||||
|
||||
create_table "colors", :force => true do |t|
|
||||
t.string "name"
|
||||
t.boolean "basic", :default => false, :null => false
|
||||
end
|
||||
|
||||
create_table "contributions", :force => true do |t|
|
||||
t.string "contributed_type", :limit => 8, :null => false
|
||||
t.integer "contributed_id", :null => false
|
||||
|
@ -102,13 +107,13 @@ ActiveRecord::Schema.define(:version => 20110807212936) do
|
|||
t.boolean "starred", :default => false, :null => false
|
||||
end
|
||||
|
||||
create_table "parents_swf_assets", :id => false, :force => true do |t|
|
||||
t.integer "parent_id", :limit => 3, :null => false
|
||||
t.integer "swf_asset_id", :limit => 3, :null => false
|
||||
t.string "swf_asset_type", :limit => 7, :null => false
|
||||
create_table "parents_swf_assets", :force => true do |t|
|
||||
t.integer "parent_id", :limit => 3, :null => false
|
||||
t.integer "swf_asset_id", :limit => 3, :null => false
|
||||
t.string "parent_type", :limit => 8, :null => false
|
||||
end
|
||||
|
||||
add_index "parents_swf_assets", ["parent_id", "swf_asset_id", "swf_asset_type"], :name => "unique_parents_swf_assets", :unique => true
|
||||
add_index "parents_swf_assets", ["parent_id", "swf_asset_id"], :name => "unique_parents_swf_assets", :unique => true
|
||||
add_index "parents_swf_assets", ["parent_id"], :name => "parent_swf_assets_parent_id"
|
||||
add_index "parents_swf_assets", ["swf_asset_id"], :name => "parents_swf_assets_swf_asset_id"
|
||||
|
||||
|
@ -151,13 +156,9 @@ ActiveRecord::Schema.define(:version => 20110807212936) do
|
|||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
create_table "schema_info", :id => false, :force => true do |t|
|
||||
t.integer "version", :default => 0, :null => false
|
||||
end
|
||||
|
||||
create_table "swf_assets", :id => false, :force => true do |t|
|
||||
create_table "swf_assets", :force => true do |t|
|
||||
t.string "type", :limit => 7, :null => false
|
||||
t.integer "id", :limit => 3, :null => false
|
||||
t.integer "remote_id", :limit => 3, :null => false
|
||||
t.text "url", :limit => 16777215, :null => false
|
||||
t.integer "zone_id", :limit => 1, :null => false
|
||||
t.text "zones_restrict", :null => false
|
||||
|
@ -170,7 +171,7 @@ ActiveRecord::Schema.define(:version => 20110807212936) do
|
|||
end
|
||||
|
||||
add_index "swf_assets", ["body_id"], :name => "swf_assets_body_id_and_object_id"
|
||||
add_index "swf_assets", ["type", "id"], :name => "swf_assets_type_and_id"
|
||||
add_index "swf_assets", ["type", "remote_id"], :name => "swf_assets_type_and_id"
|
||||
add_index "swf_assets", ["zone_id"], :name => "idx_swf_assets_zone_id"
|
||||
|
||||
create_table "topics", :force => true do |t|
|
||||
|
|
BIN
vendor/cache/POpen4-0.1.4.gem
vendored
Normal file
BIN
vendor/cache/POpen4-0.1.4.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/Platform-0.4.0.gem
vendored
Normal file
BIN
vendor/cache/Platform-0.4.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/actionmailer-3.0.4.gem
vendored
BIN
vendor/cache/actionmailer-3.0.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/actionmailer-3.0.5.gem
vendored
Normal file
BIN
vendor/cache/actionmailer-3.0.5.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/actionpack-3.0.4.gem
vendored
BIN
vendor/cache/actionpack-3.0.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/actionpack-3.0.5.gem
vendored
Normal file
BIN
vendor/cache/actionpack-3.0.5.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/activemodel-3.0.4.gem
vendored
BIN
vendor/cache/activemodel-3.0.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/activemodel-3.0.5.gem
vendored
Normal file
BIN
vendor/cache/activemodel-3.0.5.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/activerecord-3.0.4.gem
vendored
BIN
vendor/cache/activerecord-3.0.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/activerecord-3.0.5.gem
vendored
Normal file
BIN
vendor/cache/activerecord-3.0.5.gem
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
vendor/cache/activesupport-3.0.4.gem
vendored
BIN
vendor/cache/activesupport-3.0.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/activesupport-3.0.5.gem
vendored
Normal file
BIN
vendor/cache/activesupport-3.0.5.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/addressable-2.2.4.gem
vendored
BIN
vendor/cache/addressable-2.2.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/addressable-2.2.6.gem
vendored
Normal file
BIN
vendor/cache/addressable-2.2.6.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/arel-2.0.10.gem
vendored
Normal file
BIN
vendor/cache/arel-2.0.10.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/arel-2.0.8.gem
vendored
BIN
vendor/cache/arel-2.0.8.gem
vendored
Binary file not shown.
BIN
vendor/cache/closure-compiler-1.0.0.gem
vendored
BIN
vendor/cache/closure-compiler-1.0.0.gem
vendored
Binary file not shown.
BIN
vendor/cache/closure-compiler-1.1.4.gem
vendored
Normal file
BIN
vendor/cache/closure-compiler-1.1.4.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/cookiejar-0.3.0.gem
vendored
Normal file
BIN
vendor/cache/cookiejar-0.3.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/devise-1.1.5.gem
vendored
BIN
vendor/cache/devise-1.1.5.gem
vendored
Binary file not shown.
BIN
vendor/cache/devise-1.1.9.gem
vendored
Normal file
BIN
vendor/cache/devise-1.1.9.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/diff-lcs-1.1.2.gem
vendored
BIN
vendor/cache/diff-lcs-1.1.2.gem
vendored
Binary file not shown.
BIN
vendor/cache/diff-lcs-1.1.3.gem
vendored
Normal file
BIN
vendor/cache/diff-lcs-1.1.3.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/em-socksify-0.1.0.gem
vendored
Normal file
BIN
vendor/cache/em-socksify-0.1.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/escape_utils-0.1.9.gem
vendored
BIN
vendor/cache/escape_utils-0.1.9.gem
vendored
Binary file not shown.
BIN
vendor/cache/factory_girl-1.3.3.gem
vendored
BIN
vendor/cache/factory_girl-1.3.3.gem
vendored
Binary file not shown.
BIN
vendor/cache/factory_girl-2.3.2.gem
vendored
Normal file
BIN
vendor/cache/factory_girl-2.3.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/factory_girl_rails-1.0.1.gem
vendored
BIN
vendor/cache/factory_girl_rails-1.0.1.gem
vendored
Binary file not shown.
BIN
vendor/cache/factory_girl_rails-1.4.0.gem
vendored
Normal file
BIN
vendor/cache/factory_girl_rails-1.4.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/hoptoad_notifier-2.4.11.gem
vendored
Normal file
BIN
vendor/cache/hoptoad_notifier-2.4.11.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/hoptoad_notifier-2.4.5.gem
vendored
BIN
vendor/cache/hoptoad_notifier-2.4.5.gem
vendored
Binary file not shown.
BIN
vendor/cache/http_parser.rb-0.5.3.gem
vendored
Normal file
BIN
vendor/cache/http_parser.rb-0.5.3.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/i18n-0.5.0.gem
vendored
BIN
vendor/cache/i18n-0.5.0.gem
vendored
Binary file not shown.
BIN
vendor/cache/i18n-0.6.0.gem
vendored
Normal file
BIN
vendor/cache/i18n-0.6.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/mail-2.2.15.gem
vendored
BIN
vendor/cache/mail-2.2.15.gem
vendored
Binary file not shown.
BIN
vendor/cache/mail-2.2.19.gem
vendored
Normal file
BIN
vendor/cache/mail-2.2.19.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/mime-types-1.16.gem
vendored
BIN
vendor/cache/mime-types-1.16.gem
vendored
Binary file not shown.
BIN
vendor/cache/mime-types-1.17.2.gem
vendored
Normal file
BIN
vendor/cache/mime-types-1.17.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/msgpack-0.4.4.gem
vendored
BIN
vendor/cache/msgpack-0.4.4.gem
vendored
Binary file not shown.
BIN
vendor/cache/msgpack-0.4.6.gem
vendored
Normal file
BIN
vendor/cache/msgpack-0.4.6.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/mysql2-0.2.6.gem
vendored
BIN
vendor/cache/mysql2-0.2.6.gem
vendored
Binary file not shown.
BIN
vendor/cache/mysql2-0.3.11.gem
vendored
Normal file
BIN
vendor/cache/mysql2-0.3.11.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/open4-1.3.0.gem
vendored
Normal file
BIN
vendor/cache/open4-1.3.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/polyglot-0.3.1.gem
vendored
BIN
vendor/cache/polyglot-0.3.1.gem
vendored
Binary file not shown.
BIN
vendor/cache/polyglot-0.3.3.gem
vendored
Normal file
BIN
vendor/cache/polyglot-0.3.3.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rack-1.2.3.gem
vendored
BIN
vendor/cache/rack-1.2.3.gem
vendored
Binary file not shown.
BIN
vendor/cache/rack-1.2.5.gem
vendored
Normal file
BIN
vendor/cache/rack-1.2.5.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rack-fiber_pool-0.9.1.gem
vendored
BIN
vendor/cache/rack-fiber_pool-0.9.1.gem
vendored
Binary file not shown.
BIN
vendor/cache/rack-fiber_pool-0.9.2.gem
vendored
Normal file
BIN
vendor/cache/rack-fiber_pool-0.9.2.gem
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
vendor/cache/rake-0.8.7.gem
vendored
BIN
vendor/cache/rake-0.8.7.gem
vendored
Binary file not shown.
BIN
vendor/cache/rake-0.9.2.2.gem
vendored
Normal file
BIN
vendor/cache/rake-0.9.2.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/redis-2.2.1.gem
vendored
BIN
vendor/cache/redis-2.2.1.gem
vendored
Binary file not shown.
BIN
vendor/cache/redis-2.2.2.gem
vendored
Normal file
BIN
vendor/cache/redis-2.2.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/redis-namespace-1.0.3.gem
vendored
BIN
vendor/cache/redis-namespace-1.0.3.gem
vendored
Binary file not shown.
BIN
vendor/cache/redis-namespace-1.1.0.gem
vendored
Normal file
BIN
vendor/cache/redis-namespace-1.1.0.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/resque-scheduler-2.0.0.d.gem
vendored
BIN
vendor/cache/resque-scheduler-2.0.0.d.gem
vendored
Binary file not shown.
BIN
vendor/cache/resque-scheduler-2.0.0.e.gem
vendored
Normal file
BIN
vendor/cache/resque-scheduler-2.0.0.e.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rufus-scheduler-2.0.16.gem
vendored
Normal file
BIN
vendor/cache/rufus-scheduler-2.0.16.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/rufus-scheduler-2.0.9.gem
vendored
BIN
vendor/cache/rufus-scheduler-2.0.9.gem
vendored
Binary file not shown.
BIN
vendor/cache/sinatra-1.2.6.gem
vendored
BIN
vendor/cache/sinatra-1.2.6.gem
vendored
Binary file not shown.
BIN
vendor/cache/sinatra-1.2.8.gem
vendored
Normal file
BIN
vendor/cache/sinatra-1.2.8.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/tilt-1.3.2.gem
vendored
BIN
vendor/cache/tilt-1.3.2.gem
vendored
Binary file not shown.
BIN
vendor/cache/tilt-1.3.3.gem
vendored
Normal file
BIN
vendor/cache/tilt-1.3.3.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/treetop-1.4.10.gem
vendored
Normal file
BIN
vendor/cache/treetop-1.4.10.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/treetop-1.4.9.gem
vendored
BIN
vendor/cache/treetop-1.4.9.gem
vendored
Binary file not shown.
BIN
vendor/cache/tzinfo-0.3.28.gem
vendored
BIN
vendor/cache/tzinfo-0.3.28.gem
vendored
Binary file not shown.
BIN
vendor/cache/tzinfo-0.3.31.gem
vendored
Normal file
BIN
vendor/cache/tzinfo-0.3.31.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/warden-1.0.3.gem
vendored
BIN
vendor/cache/warden-1.0.3.gem
vendored
Binary file not shown.
BIN
vendor/cache/warden-1.0.6.gem
vendored
Normal file
BIN
vendor/cache/warden-1.0.6.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/whenever-0.6.2.gem
vendored
BIN
vendor/cache/whenever-0.6.2.gem
vendored
Binary file not shown.
BIN
vendor/cache/whenever-0.6.8.gem
vendored
Normal file
BIN
vendor/cache/whenever-0.6.8.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/will_paginate-3.0.2.gem
vendored
Normal file
BIN
vendor/cache/will_paginate-3.0.2.gem
vendored
Normal file
Binary file not shown.
BIN
vendor/cache/will_paginate-3.0.pre2.gem
vendored
BIN
vendor/cache/will_paginate-3.0.pre2.gem
vendored
Binary file not shown.
BIN
vendor/cache/yui-compressor-0.9.3.gem
vendored
BIN
vendor/cache/yui-compressor-0.9.3.gem
vendored
Binary file not shown.
BIN
vendor/cache/yui-compressor-0.9.6.gem
vendored
Normal file
BIN
vendor/cache/yui-compressor-0.9.6.gem
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue