app can now load environment even if schema not yet loaded

This commit is contained in:
Emi Matchu 2011-09-06 11:15:09 -05:00
parent c489f2802d
commit 285c7858c0
6 changed files with 721 additions and 4073 deletions

View file

@ -40,7 +40,7 @@ class Item < ActiveRecord::Base
scope :newest, order(arel_table[:created_at].desc) if arel_table[:created_at]
scope :spidered_longest_ago, order(["(#{Item.arel_table[:last_spidered].eq(nil).to_sql}) DESC", arel_table[:last_spidered].desc])
scope :spidered_longest_ago, order(["(last_spidered IS NULL) DESC", "last_spidered DESC"])
scope :sold_in_mall, where(:sold_in_mall => true)
scope :not_sold_in_mall, where(:sold_in_mall => false)
@ -678,13 +678,16 @@ class Item < ActiveRecord::Base
search_filter :description do |description|
arel_table[:description].matches("%#{description}%")
end
def self.adjective_filters
@adjective_filters ||= {
'nc' => arel_table[:rarity_index].in(NCRarities),
'pb' => arel_table[:description].eq(PAINTBRUSH_SET_DESCRIPTION)
}
end
ADJECTIVE_FILTERS = {
'nc' => arel_table[:rarity_index].in(NCRarities),
'pb' => arel_table[:description].eq(PAINTBRUSH_SET_DESCRIPTION)
}
search_filter :is do |adjective|
filter = ADJECTIVE_FILTERS[adjective]
filter = adjective_filters[adjective]
unless filter
raise SearchError,
"We don't know how an item can be \"#{adjective}\". " +

View file

@ -11,23 +11,29 @@ class PetType < ActiveRecord::Base
BasicHashes = YAML::load_file(Rails.root.join('config', 'basic_type_hashes.yml'))
StandardPetTypesBySpeciesId = PetType.where(arel_table[:color_id].in(Color::BasicIds)).group_by(&:species_id)
StandardBodyIds = [].tap do |body_ids|
StandardPetTypesBySpeciesId.each do |species_id, pet_types|
body_ids.concat(pet_types.map(&:body_id))
end
end
# Returns all pet types of a single standard color. The caller shouldn't care
# which, though, in this implemention, it's always Blue. Don't depend on that.
scope :single_standard_color, where(:color_id => Color::BasicIds[0])
scope :nonstandard_colors, where(:color_id => Color.nonstandard_ids)
def self.standard_pet_types_by_species_id
@standard_pet_types_by_species_id ||=
PetType.where(:color_id => Color::BasicIds).group_by(&:species_id)
end
def self.standard_body_ids
@standard_body_ids ||= [].tap do |body_ids|
standard_pet_types_by_species_id.each do |species_id, pet_types|
body_ids.concat(pet_types.map(&:body_id))
end
end
end
def self.random_basic_per_species(species_ids)
random_pet_types = []
species_ids.each do |species_id|
pet_types = StandardPetTypesBySpeciesId[species_id]
pet_types = standard_pet_types_by_species_id[species_id]
random_pet_types << pet_types[rand(pet_types.size)] if pet_types
end
random_pet_types

View file

@ -123,14 +123,17 @@ class SwfAsset < ActiveRecord::Base
:conditions => {:swf_asset_type => 'object'}
delegate :depth, :to => :zone
def self.body_ids_fitting_standard
@body_ids_fitting_standard ||= PetType.standard_body_ids + [0]
end
scope :fitting_body_id, lambda { |body_id|
where(arel_table[:body_id].in([body_id, 0]))
}
BodyIdsFittingStandard = PetType::StandardBodyIds + [0]
scope :fitting_standard_body_ids, lambda {
where(arel_table[:body_id].in(BodyIdsFittingStandard))
where(arel_table[:body_id].in(body_ids_fitting_standard))
}
scope :fitting_color, lambda { |color|
@ -138,8 +141,8 @@ class SwfAsset < ActiveRecord::Base
where(arel_table[:body_id].in(body_ids))
}
scope :biology_assets, where(arel_table[:type].eq(PetState::SwfAssetType))
scope :object_assets, where(arel_table[:type].eq(Item::SwfAssetType))
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).
where(ParentSwfAssetRelationship.arel_table[:parent_id].in(item_ids))

View file

@ -10,7 +10,7 @@ class User < ActiveRecord::Base
has_many :contributions
has_many :outfits
scope :top_contributors, order('points DESC').where(arel_table[:points].gt(0))
scope :top_contributors, order('points DESC').where('points > 0')
devise :rememberable

View file

@ -1,84 +1,25 @@
/* line 29, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
body {
line-height: 1.5;
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
color: black;
background: none;
font-size: 10pt;
}
body { line-height: 1.5; font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; color: black; background: none; font-size: 10pt; }
/* line 52, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
.container {
background: none;
}
.container { background: none; }
/* line 54, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
hr {
background: #cccccc;
color: #cccccc;
width: 100%;
height: 2px;
margin: 2em 0;
padding: 0;
border: none;
}
/* line 62, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
hr.space {
background: white;
color: white;
}
hr { background: #cccccc; color: #cccccc; width: 100%; height: 2px; margin: 2em 0; padding: 0; border: none; }
hr.space { background: white; color: white; }
/* line 65, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
h1, h2, h3, h4, h5, h6 {
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6 { font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; }
/* line 67, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
code {
font-size: 0.9em;
font-family: "andale mono", "lucida console", monospace;
}
code { font-size: 0.9em; font-family: "andale mono", "lucida console", monospace; }
/* line 72, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
a img {
border: none;
}
/* line 75, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
a:link, a:visited {
background: transparent;
font-weight: 700;
text-decoration: underline;
}
a img { border: none; }
a:link, a:visited { background: transparent; font-weight: 700; text-decoration: underline; }
/* line 79, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
p img.top {
margin-top: 0;
}
p img.top { margin-top: 0; }
/* line 81, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
blockquote {
margin: 1.5em;
padding: 1em;
font-style: italic;
font-size: 0.9em;
}
blockquote { margin: 1.5em; padding: 1em; font-style: italic; font-size: 0.9em; }
/* line 86, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
.small {
font-size: 0.9em;
}
.small { font-size: 0.9em; }
/* line 88, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
.large {
font-size: 1.1em;
}
.large { font-size: 1.1em; }
/* line 90, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
.quiet {
color: #999999;
}
.quiet { color: #999999; }
/* line 92, ../../../../../.rvm/gems/ree-1.8.7-2010.02/gems/compass-0.10.6/frameworks/blueprint/stylesheets/blueprint/_print.scss */
.hide {
display: none;
}
.hide { display: none; }

File diff suppressed because it is too large Load diff