diff --git a/app/models/comment.rb b/app/models/comment.rb index 885b2481da2041f128b3e8b70be4e486e031ebb3..8ba576e9ee53fd75ed16a0b83944723b19a2b918 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -23,6 +23,7 @@ class Comment < ActiveRecord::Base validates_presence_of :text, :post + serialize :youtube_titles, Hash before_save do get_youtube_title text end diff --git a/app/models/status_message.rb b/app/models/status_message.rb index f2052d3cd90a8bb4f59f26cb06fc0948dfd9cccb..56475a63d1bfa9fd1bea5498c77cb8db32da9737 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -17,6 +17,7 @@ class StatusMessage < Post attr_accessible :message + serialize :youtube_titles, Hash before_save do get_youtube_title message end diff --git a/db/migrate/0000_create_schema.rb b/db/migrate/0000_create_schema.rb index 7d27bf5fd26f26df201b4a8cf8ea74d1c0646356..65a14130a0c1ac614651ad444e4827922f0dbc63 100644 --- a/db/migrate/0000_create_schema.rb +++ b/db/migrate/0000_create_schema.rb @@ -23,6 +23,7 @@ class CreateSchema < ActiveRecord::Migration t.string :guid t.text :creator_signature t.text :post_creator_signature + t.text :youtube_titles t.timestamps end add_index :comments, :guid, :unique => true @@ -86,6 +87,7 @@ class CreateSchema < ActiveRecord::Migration t.string :remote_photo_name t.string :random_string t.string :image #carrierwave's column + t.text :youtube_titles t.timestamps end diff --git a/db/schema.rb b/db/schema.rb index 96416285b09f490655415b7b49a1ae1ef7ebf822..e6817892cde8cd69d4188856bc7c7bfeb6bda18b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -39,6 +39,7 @@ ActiveRecord::Schema.define(:version => 0) do t.string "guid" t.text "creator_signature" t.text "post_creator_signature" + t.text "youtube_titles" t.datetime "created_at" t.datetime "updated_at" end @@ -120,6 +121,7 @@ ActiveRecord::Schema.define(:version => 0) do t.string "remote_photo_name" t.string "random_string" t.string "image" + t.text "youtube_titles" t.datetime "created_at" t.datetime "updated_at" end diff --git a/lib/youtube_titles.rb b/lib/youtube_titles.rb index 55ecab4cf353190fc788f895b183800084f9c153..0e16e76cc72abe9da887adde7adfa73c8286815a 100644 --- a/lib/youtube_titles.rb +++ b/lib/youtube_titles.rb @@ -10,12 +10,12 @@ module YoutubeTitles title || I18n.t('application.helper.video_title.unknown') end def get_youtube_title text - self[:youtube_titles] ||= {} + self.youtube_titles ||= {} youtube_match = text.match(YOUTUBE_ID_REGEX) return unless youtube_match video_id = youtube_match[1] - unless self[:youtube_titles][video_id] - self[:youtube_titles][video_id] = youtube_title_for(video_id) + unless self.youtube_titles[video_id] + self.youtube_titles[video_id] = youtube_title_for(video_id) end end YOUTUBE_ID_REGEX = /youtube\.com.*?v=([A-Za-z0-9_\\\-]+)/ unless defined? YOUTUBE_ID_REGEX diff --git a/spec/controllers/status_message_controller_spec.rb b/spec/controllers/status_message_controller_spec.rb index 89d349fa95983171c91b1aed650d998de4e1c910..cc5af97c570b24a8745037ebfde4054cda1438c7 100644 --- a/spec/controllers/status_message_controller_spec.rb +++ b/spec/controllers/status_message_controller_spec.rb @@ -31,7 +31,7 @@ describe StatusMessagesController do response.should be_success end end - + describe '#create' do let(:status_message_hash) { { :status_message => { diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index f059399a84a7b2878be3bd9bd5f52e8c696a3f57..f0397f19058dc54d4557d4d6a7dc898455cbb514 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -266,7 +266,7 @@ describe Comment do comment = user.build_comment url, :on => @message comment.save! - comment[:youtube_titles].should == {video_id => expected_title} + Comment.find(comment.id).youtube_titles.should == {video_id => expected_title} end end end diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index e523dfd41d8a1dc75285e5936f16b1d3147ed5d7..ebc1e158e50aba8987ea3c5e99288ed742fdc40e 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -100,7 +100,7 @@ describe StatusMessage do post = @user.build_post :status_message, :message => url, :to => @aspect.id post.save! - post[:youtube_titles].should == {video_id => expected_title} + Post.find(post.id).youtube_titles.should == {video_id => expected_title} end end