test/model_test.rb in paperdragon-0.0.10 vs test/model_test.rb in paperdragon-0.0.11
- old
+ new
@@ -9,36 +9,45 @@
self.file_class = Photo
end
include Paperdragon::Model
processable :image, Attachment
+ processable :picture, Attachment
def image_meta_data
{:thumb => {:uid => "Avatar-thumb"}}
end
+
+ def picture_meta_data
+ {:thumb => {:uid => "Picture-thumb"}}
+ end
end
# model has image_meta_data hash.
it { Avatar.new.image[:thumb].url.must_equal "/paperdragon/Avatar-thumb" }
+ it { Avatar.new.picture[:thumb].url.must_equal "/paperdragon/Picture-thumb" }
# model doesn't have upload, yet. returns empty attachment.
it { Image.new.image.metadata.must_equal({}) }
+ it { Image.new.picture.metadata.must_equal({}) }
# minimum setup
class Image < OpenStruct
include Paperdragon::Model
processable :image
+ processable :picture
end
it { Image.new(:image_meta_data => {:thumb => {:uid => "Avatar-thumb"}}).image[:thumb].url.must_equal "/paperdragon/Avatar-thumb" }
+ it { Image.new(:picture_meta_data => {:thumb => {:uid => "Picture-thumb"}}).picture[:thumb].url.must_equal "/paperdragon/Picture-thumb" }
# process with #image{}
let (:logo) { Pathname("test/fixtures/apotomo.png") }
- it do
+ it "image" do
model = Image.new
model.image(logo) do |v|
v.process!(:original)
v.process!(:thumb) { |j| j.thumb!("16x16") }
end
@@ -58,10 +67,34 @@
end
model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}})
end
+ it "picture" do
+ model = Image.new
+ model.picture(logo) do |v|
+ v.process!(:original)
+ v.process!(:thumb) { |j| j.thumb!("16x16") }
+ end
+
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>16, :height=>5, :uid=>"thumb-apotomo.png"}})
+
+
+ model.picture do |v|
+ v.reprocess!(:thumb, "1") { |j| j.thumb!("8x8") }
+ end
+
+ model.picture_meta_data.class.must_equal Hash
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}})
+
+ model.picture do |v|
+ v.delete!(:thumb)
+ end
+
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}})
+ end
+
# passing options from image(file, {..}) to the Attachment.
class ImageWithAttachment < OpenStruct
include Paperdragon::Model
class Attachment < Paperdragon::Attachment
@@ -73,13 +106,14 @@
@options.inspect
end
end
processable :image, Attachment
+ processable :picture, Attachment
end
- it do
+ it "image" do
model = ImageWithAttachment.new
model.image(logo, :path => "/") do |v|
v.process!(:original)
end
@@ -90,10 +124,26 @@
v.reprocess!(:original, "1") { |j| j.thumb!("8x8") }
end
model.image_meta_data.must_equal({:original=>{:width=>8, :height=>2, :uid=>"{:new=>true, :model=>#<PaperdragonModelTest::ImageWithAttachment image_meta_data={:original=>{:width=>216, :height=>63, :uid=>\"{:path=>\\\"/\\\", :model=>_<PaperdragonModelTest::ImageWithAttachment>}\"}}>}"}})
end
+
+ it "picture" do
+ model = ImageWithAttachment.new
+ model.picture(logo, :path => "/") do |v|
+ v.process!(:original)
+ end
+
+ # this assures that both :model and :path (see above) are passed through.
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"{:path=>\"/\", :model=>_<PaperdragonModelTest::ImageWithAttachment>}"}})
+
+ model.picture(nil, :new => true) do |v|
+ v.reprocess!(:original, "1") { |j| j.thumb!("8x8") }
+ end
+
+ model.picture_meta_data.must_equal({:original=>{:width=>8, :height=>2, :uid=>"{:new=>true, :model=>#<PaperdragonModelTest::ImageWithAttachment picture_meta_data={:original=>{:width=>216, :height=>63, :uid=>\"{:path=>\\\"/\\\", :model=>_<PaperdragonModelTest::ImageWithAttachment>}\"}}>}"}})
+ end
end
class ModelWriterTest < MiniTest::Spec
class Image < OpenStruct
@@ -120,16 +170,49 @@
model.image_meta_data.class.must_equal Hash
model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}})
end
-end
+ # Using another name
+ class Picture < OpenStruct
+ extend Paperdragon::Model::Writer
+ processable_writer :picture
+ end
+ # process with #image{}
+ let (:logo) { Pathname("test/fixtures/apotomo.png") }
+ it do
+ model = Picture.new
+ model.picture!(logo) do |v|
+ v.process!(:original)
+ v.process!(:thumb) { |j| j.thumb!("16x16") }
+ end
+
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>16, :height=>5, :uid=>"thumb-apotomo.png"}})
+
+
+ model.picture! do |v|
+ v.reprocess!(:thumb, "1") { |j| j.thumb!("8x8") }
+ end
+
+ model.picture_meta_data.class.must_equal Hash
+ model.picture_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}})
+ end
+end
+
class ModelReaderTest < MiniTest::Spec
class Image < OpenStruct
extend Paperdragon::Model::Reader
processable_reader :image
end
it { Image.new(:image_meta_data => {:thumb => {:uid => "Avatar-thumb"}}).image[:thumb].url.must_equal "/paperdragon/Avatar-thumb" }
+
+ # Using another name
+ class Image < OpenStruct
+ extend Paperdragon::Model::Reader
+ processable_reader :picture
+ end
+
+ it { Image.new(:picture_meta_data => {:thumb => {:uid => "Avatar-thumb"}}).picture[:thumb].url.must_equal "/paperdragon/Avatar-thumb" }
end
\ No newline at end of file