Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

podendo receber 2 legendas

  • Loading branch information...
commit 12ab5746b5ce37fb751a363cc38000bc910bfd34 1 parent 18c7156
@HugoLnx authored
View
22 app/controllers/montagens_controller.rb
@@ -15,18 +15,28 @@ def create
def criar_legendado(arquivo, legenda)
img = arquivo.imagem
- if legenda.has_key? :fundo
- insercao_fundo = Manipulacao::InsercaoFundo.factory(legenda)
- img = insercao_fundo.aplicar(img)
+ if legenda.is_a? Array
+ legenda.each do |leg|
+ img = adicionar_legenda(img, leg)
+ end
+ else
+ img = adicionar_legenda(img, legenda)
end
- insercao_legenda = Manipulacao::InsercaoLegenda.factory(legenda)
- img = insercao_legenda.aplicar(img)
-
dir = File.dirname(arquivo.path)
nome = ImagensTemporarias.id_unico
gravado = img.gravar(dir, nome)
return Path.new(gravado.path)
end
+
+ def adicionar_legenda(img, legenda)
+ if legenda.has_key? :fundo
+ insercao_fundo = Manipulacao::InsercaoFundo.factory(legenda)
+ img = insercao_fundo.aplicar(img)
+ end
+
+ insercao_legenda = Manipulacao::InsercaoLegenda.factory(legenda)
+ return insercao_legenda.aplicar(img)
+ end
end
View
BIN  spec/fixtures/upload/2_legendas_500x369.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  spec/fixtures/upload/2_legendas_fundo_500x369.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
106 spec/requests/montagens_spec.rb
@@ -173,4 +173,110 @@
montagem.should == montagem_fixture
end
end
+
+
+
+ context %q{
+ Passando os parâmetros:
+ {
+ montagem: {
+ imagem: "spec/tmp/500x369_30kb.png",
+ legenda: [
+ {
+ texto: "Legenda Superior",
+ margem: "5",
+ topo: "true",
+ fonte: {
+ cor: "#0000ff",
+ familia: "Arial",
+ tamanho: "50"
+ }
+ },
+ {
+ texto: "Legenda Inferior",
+ margem: "5",
+ topo: "false",
+ fonte: {
+ cor: "#ff0000",
+ familia: "Arial",
+ tamanho: "30"
+ }
+ }
+ ]
+ }
+ }
+ } do
+ it "responde com sucesso (codigo 200)" do
+ response.code.should == "200"
+ end
+
+ it "responde com a path publica para a imagem enviada" do
+ response.body.should =~ %r{^/?spec/tmp/.*\.png}
+ end
+
+ it 'cria imagem legendada com fundo preto na parte superior' do
+ path = File.join("public", response.body)
+ montagem = Imagem.new(File.read(path))
+
+ fixture_path = "upload/2_legendas_500x369.png"
+ montagem_fixture = Imagem.new(ler_fixture(fixture_path))
+
+ (montagem == montagem_fixture).should be_true
+ end
+ end
+
+ context %q{
+ Passando os parâmetros:
+ {
+ montagem: {
+ imagem: "spec/tmp/500x369_30kb.png",
+ legenda: [
+ {
+ texto: "Legenda Superior",
+ margem: "5",
+ topo: "true",
+ fonte: {
+ cor: "#0000ff",
+ familia: "Arial",
+ tamanho: "50"
+ },
+ fundo: {
+ cor: "#000000",
+ }
+ },
+ {
+ texto: "Legenda Inferior",
+ margem: "5",
+ topo: "false",
+ fonte: {
+ cor: "#ff0000",
+ familia: "Arial",
+ tamanho: "30"
+ },
+ fundo: {
+ cor: "#00ff00",
+ }
+ }
+ ]
+ }
+ }
+ } do
+ it "responde com sucesso (codigo 200)" do
+ response.code.should == "200"
+ end
+
+ it "responde com a path publica para a imagem enviada" do
+ response.body.should =~ %r{^/?spec/tmp/.*\.png}
+ end
+
+ it 'cria imagem legendada com fundo preto na parte superior' do
+ path = File.join("public", response.body)
+ montagem = Imagem.new(File.read(path))
+
+ fixture_path = "upload/2_legendas_fundo_500x369.png"
+ montagem_fixture = Imagem.new(ler_fixture(fixture_path))
+
+ (montagem == montagem_fixture).should be_true
+ end
+ end
end
Please sign in to comment.
Something went wrong with that request. Please try again.