diff options
| author | mo k <mo@mokhan.ca> | 2012-11-07 21:34:00 -0700 |
|---|---|---|
| committer | mo k <mo@mokhan.ca> | 2012-11-07 21:34:00 -0700 |
| commit | 8d5ba18d8be3ab00a9cd37219e058c2e5696fbe9 (patch) | |
| tree | 76e8cb60959f08b2f88f21bfc124a2fd64d3cc6a | |
| parent | 6713f241e5092cdc29f5d0a39c2aa0ceab76a570 (diff) | |
split DTO, mapper and query into separate files.
| -rw-r--r-- | app/models/creation.rb | 1 | ||||
| -rw-r--r-- | app/services/creation_to_display_creation_dto_mapper.rb | 14 | ||||
| -rw-r--r-- | app/services/display_creation_dto.rb | 9 | ||||
| -rw-r--r-- | app/services/find_all_creations_query.rb | 25 | ||||
| -rw-r--r-- | spec/controllers/creations_controller_spec.rb | 6 |
5 files changed, 30 insertions, 25 deletions
diff --git a/app/models/creation.rb b/app/models/creation.rb index e6b61402..8317ef8b 100644 --- a/app/models/creation.rb +++ b/app/models/creation.rb @@ -12,6 +12,7 @@ class Creation < ActiveRecord::Base default_scope order("created_at DESC") + # to be removed and moved to the DisplayCreationDTO def to_param "#{id}-#{name.gsub(/[^a-z0-9]+/i, '-')}" end diff --git a/app/services/creation_to_display_creation_dto_mapper.rb b/app/services/creation_to_display_creation_dto_mapper.rb new file mode 100644 index 00000000..3aef401f --- /dev/null +++ b/app/services/creation_to_display_creation_dto_mapper.rb @@ -0,0 +1,14 @@ +class CreationToDisplayCreationDTOMapper + def map_from(creation) + dto = DisplayCreationDTO.new + dto.id = creation.id + dto.name = creation.name + dto.story = creation.story + dto.primary_image = creation.primary_image + dto.thumb_url = creation.primary_image.image.thumb.url + dto.user = creation.user + dto.favorites = creation.favorites + dto.comment_threads = creation.comment_threads + dto + end +end diff --git a/app/services/display_creation_dto.rb b/app/services/display_creation_dto.rb new file mode 100644 index 00000000..f4f9239a --- /dev/null +++ b/app/services/display_creation_dto.rb @@ -0,0 +1,9 @@ +class DisplayCreationDTO + attr_accessor :id, :name, :story, :primary_image, :thumb_url, :user, :favorites, :comment_threads + def self.model_name + ActiveModel::Name.new(self, nil, 'Creation') + end + def to_param + "#{id}-#{name.gsub(/[^a-z0-9]+/i, '-')}" + end +end diff --git a/app/services/find_all_creations_query.rb b/app/services/find_all_creations_query.rb index 7be82045..f60580f7 100644 --- a/app/services/find_all_creations_query.rb +++ b/app/services/find_all_creations_query.rb @@ -1,5 +1,5 @@ class FindAllCreationsQuery - def initialize(user, mapper = CreationToDisplayCreationDTO.new) + def initialize(user, mapper = CreationToDisplayCreationDTOMapper.new) @user = user @mapper = mapper end @@ -18,26 +18,3 @@ class FindAllCreationsQuery Kaminari.paginate_array(items).page(page).per(16) end end -class CreationToDisplayCreationDTO - def map_from(creation) - dto = DisplayCreationDTO.new - dto.id = creation.id - dto.name = creation.name - dto.story = creation.story - dto.primary_image = creation.primary_image - dto.thumb_url = creation.primary_image.image.thumb.url - dto.user = creation.user - dto.favorites = creation.favorites - dto.comment_threads = creation.comment_threads - dto - end -end -class DisplayCreationDTO - attr_accessor :id, :name, :story, :primary_image, :thumb_url, :user, :favorites, :comment_threads - def self.model_name - ActiveModel::Name.new(self, nil, 'Creation') - end - def to_param - "#{id}-#{name.gsub(/[^a-z0-9]+/i, '-')}" - end -end diff --git a/spec/controllers/creations_controller_spec.rb b/spec/controllers/creations_controller_spec.rb index 39cb7f43..efdb983a 100644 --- a/spec/controllers/creations_controller_spec.rb +++ b/spec/controllers/creations_controller_spec.rb @@ -13,7 +13,11 @@ describe CreationsController do describe "GET index" do it "assigns all creations as @creations" do get :index - assigns(:creations).should eq([creation]) + creation = assigns(:creations).first + creation.id.should == creation.id + creation.name.should == creation.name + creation.story.should == creation.story + creation.user.should == creation.user end end |
