From 8baa09d633fd52f66718b4517c4298814c5b24eb Mon Sep 17 00:00:00 2001 From: Matchu Date: Wed, 19 May 2010 19:17:33 -0400 Subject: [PATCH] whoops - that was in the wrong spot. move swf_asset_parent.rb, refactor a bit --- app/models/item.rb | 4 +--- app/models/pet_type.rb | 4 +--- app/models/swf_asset_parent.rb | 12 ++++++++++++ spec/models/swf_asset_parent.rb | 10 ---------- spec/models/swf_asset_spec.rb | 5 ----- spec/views/swf_assets/index.html.erb_spec.rb | 5 ----- 6 files changed, 14 insertions(+), 26 deletions(-) create mode 100644 app/models/swf_asset_parent.rb delete mode 100644 spec/models/swf_asset_parent.rb delete mode 100644 spec/models/swf_asset_spec.rb delete mode 100644 spec/views/swf_assets/index.html.erb_spec.rb diff --git a/app/models/item.rb b/app/models/item.rb index ac092f71..71ad9cdd 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -1,9 +1,7 @@ class Item < ActiveRecord::Base include SwfAssetParent - def swf_asset_type - 'object' - end + SwfAssetType = 'object' set_table_name 'objects' # Neo & PHP Impress call them objects, but the class name is a conflict (duh!) set_inheritance_column 'inheritance_type' # PHP Impress used "type" to describe category diff --git a/app/models/pet_type.rb b/app/models/pet_type.rb index 039b23f9..2387b904 100644 --- a/app/models/pet_type.rb +++ b/app/models/pet_type.rb @@ -1,9 +1,7 @@ class PetType < ActiveRecord::Base include SwfAssetParent - def swf_asset_type - 'biology' - end + SwfAssetType = 'biology' BasicHashes = YAML::load_file(Rails.root.join('config', 'basic_type_hashes.yml')) diff --git a/app/models/swf_asset_parent.rb b/app/models/swf_asset_parent.rb new file mode 100644 index 00000000..489b4604 --- /dev/null +++ b/app/models/swf_asset_parent.rb @@ -0,0 +1,12 @@ +module SwfAssetParent + def swf_assets + rels = Table(ParentSwfAssetRelationship.table_name) + 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 = Table(SwfAsset.table_name) + SwfAsset.where(assets[:id].in(ids)).all + end +end diff --git a/spec/models/swf_asset_parent.rb b/spec/models/swf_asset_parent.rb deleted file mode 100644 index 6cdeefcb..00000000 --- a/spec/models/swf_asset_parent.rb +++ /dev/null @@ -1,10 +0,0 @@ -module SwfAssetParent - def swf_assets - rels = Table(ParentSwfAssetRelationship.table_name) - swf_asset_ids = ParentSwfAssetRelationship.where( - rels[:parent_id].eq(id).and(rels[:swf_asset_type].eq(swf_asset_type)) - ).map(&:swf_asset_id) - swf_assets = Table(SwfAsset.table_name) - SwfAsset.where(swf_assets[:id].in(swf_asset_ids)) - end -end diff --git a/spec/models/swf_asset_spec.rb b/spec/models/swf_asset_spec.rb deleted file mode 100644 index c5f12347..00000000 --- a/spec/models/swf_asset_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'spec_helper' - -describe SwfAsset do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/spec/views/swf_assets/index.html.erb_spec.rb b/spec/views/swf_assets/index.html.erb_spec.rb deleted file mode 100644 index 82973ee1..00000000 --- a/spec/views/swf_assets/index.html.erb_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'spec_helper' - -describe "swf_assets/index.html.erb" do - pending "add some examples to (or delete) #{__FILE__}" -end