]> nos-oignons.net Git - gestion-adh.git/commitdiff
Correction ('reçu' ou 'récépissé' se dit 'receipt' en anglais, et non
authorquidame <quidame@poivron.org>
Sat, 14 Dec 2013 14:26:09 +0000 (15:26 +0100)
committerquidame <quidame@poivron.org>
Sat, 14 Dec 2013 14:26:09 +0000 (15:26 +0100)
'reciept'): modification des noms de fichiers et de leur contenu.

13 files changed:
README
bin/create-membership-fee-receipt [new file with mode: 0755]
bin/create-membership-fee-reciept [deleted file]
features/create-membership-fee-receipt.feature [new file with mode: 0644]
features/create-membership-fee-reciept.feature [deleted file]
features/step_definitions/commands.rb
features/step_definitions/receipts.rb [new file with mode: 0644]
features/step_definitions/reciepts.rb [deleted file]
features/support/env.rb
lib/nos_oignons.rb
lib/nos_oignons/member.rb
lib/nos_oignons/receipt.rb [new file with mode: 0644]
lib/nos_oignons/reciept.rb [deleted file]

diff --git a/README b/README
index 6d03e990af49dc1ce2180b71d6718901eedf537f..f0eb47eedbe4db5618f1e781ff4acf7c1ba608f2 100644 (file)
--- a/README
+++ b/README
@@ -119,7 +119,7 @@ Ce script a vocation a être executé tous les mois afin que le comité
 puisse convoquer une assemblée générale extraordinaire, même en cas de
 défaillance du conseil d'administration.
 
 puisse convoquer une assemblée générale extraordinaire, même en cas de
 défaillance du conseil d'administration.
 
-`create-membership-fee-reciept`
+`create-membership-fee-receipt`
 -------------------------------
 
 Permet de créer un reçu de cotisation pour les membres en faisant
 -------------------------------
 
 Permet de créer un reçu de cotisation pour les membres en faisant
@@ -127,12 +127,12 @@ la demande.
 
 Exemple d'utilisation :
 
 
 Exemple d'utilisation :
 
-    bin/create-membership-fee-reciept 000042 10,00
+    bin/create-membership-fee-receipt 000042 10,00
 
 Cela crééra un reçu pour le membre 000042 pour une cotisation d'un
 montant de 10,00€. Le reçu est généré sous forme d'un fichier PDF dans
 
 Cela crééra un reçu pour le membre 000042 pour une cotisation d'un
 montant de 10,00€. Le reçu est généré sous forme d'un fichier PDF dans
-le répertoire spécifié par la variable d'environnement NOS_OIGNONS_RECIEPTS_DIR
-(ou le répertoire `reciepts` dans le répertoire courant).
+le répertoire spécifié par la variable d'environnement NOS_OIGNONS_RECEIPTS_DIR
+(ou le répertoire `receipts` dans le répertoire courant).
 
 Il faut créer le répertoire avant utilisation s'il n'existe pas déjà.
 
 
 Il faut créer le répertoire avant utilisation s'il n'existe pas déjà.
 
diff --git a/bin/create-membership-fee-receipt b/bin/create-membership-fee-receipt
new file mode 100755 (executable)
index 0000000..2fa9340
--- /dev/null
@@ -0,0 +1,21 @@
+#!/usr/bin/ruby1.9.1
+#-*- coding: utf-8 -*-
+
+require 'rubygems'
+require 'bundler'
+Bundler.setup
+
+require 'nos_oignons'
+
+begin
+  member_id = ARGV[0]
+  amount = ARGV[1]
+  unless member_id && amount
+    $stderr.puts "Usage: #{$PROGRAM_NAME} 000042 10,00"
+    exit 1
+  end
+  NosOignons.create_membership_fee_receipt!(member_id, amount)
+rescue ArgumentError => ex
+  $stderr.puts "E: #{ex}"
+  exit 1
+end
diff --git a/bin/create-membership-fee-reciept b/bin/create-membership-fee-reciept
deleted file mode 100755 (executable)
index fae26aa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/ruby1.9.1
-#-*- coding: utf-8 -*-
-
-require 'rubygems'
-require 'bundler'
-Bundler.setup
-
-require 'nos_oignons'
-
-begin
-  member_id = ARGV[0]
-  amount = ARGV[1]
-  unless member_id && amount
-    $stderr.puts "Usage: #{$PROGRAM_NAME} 000042 10,00"
-    exit 1
-  end
-  NosOignons.create_membership_fee_reciept!(member_id, amount)
-rescue ArgumentError => ex
-  $stderr.puts "E: #{ex}"
-  exit 1
-end
diff --git a/features/create-membership-fee-receipt.feature b/features/create-membership-fee-receipt.feature
new file mode 100644 (file)
index 0000000..c3c5736
--- /dev/null
@@ -0,0 +1,29 @@
+# language: fr
+
+Fonctionnalité: générer des reçus pour les cotisations des membres
+  En tant que membre du C.A. de Nos oignons, j'aimerais pouvoir générer
+  un reçu de cotisation lorsqu'un·e adhérent·e me le demande.
+
+  Scénario: Création du reçu
+    Soit une base avec Jane, membre 000001, ayant cotisé le 2013-06-03
+    Lorsque j'exécute `create-membership-fee-receipt 000001 10,00`
+    Alors le fichier "receipt-000001-2013-06-03.pdf" doit avoir été créé avec les reçus
+    Et il doit contenir le nom et l'adresse de Jane, la date et le montant de la cotisation
+
+  Scénario: Mauvais numéro de membre
+    Soit une base avec uniquement Jane, membre 000001
+    Lorsque j'exécute `create-membership-fee-receipt 000002 10,00`
+    Alors je dois voir comme erreur "unknown member"
+
+  Scénario: Aucune cotisation
+    Soit une base avec Jane, membre 000001, n'ayant jamais cotisé
+    Lorsque j'exécute `create-membership-fee-receipt 000001 10,00`
+    Alors je dois voir comme erreur "membership fee has not been paid for this year"
+
+  Scénario: Manque le numéro de l'adhésion
+    Lorsque j'exécute `create-membership-fee-receipt`
+    Alors je dois voir comme erreur "Usage:"
+
+  Scénario: Manque le montant de l'adhésion
+    Lorsque j'exécute `create-membership-fee-receipt 000001`
+    Alors je dois voir comme erreur "Usage:"
diff --git a/features/create-membership-fee-reciept.feature b/features/create-membership-fee-reciept.feature
deleted file mode 100644 (file)
index d21fb71..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# language: fr
-
-Fonctionnalité: générer des reçus pour les cotisations des membres
-  En tant que membre du C.A. de Nos oignons, j'aimerais pouvoir générer
-  un reçu de cotisation lorsqu'un·e adhérent·e me le demande.
-
-  Scénario: Création du reçu
-    Soit une base avec Jane, membre 000001, ayant cotisé le 2013-06-03
-    Lorsque j'exécute `create-membership-fee-reciept 000001 10,00`
-    Alors le fichier "reciept-000001-2013-06-03.pdf" doit avoir été créé avec les reçus
-    Et il doit contenir le nom et l'adresse de Jane, la date et le montant de la cotisation
-
-  Scénario: Mauvais numéro de membre
-    Soit une base avec uniquement Jane, membre 000001
-    Lorsque j'exécute `create-membership-fee-reciept 000002 10,00`
-    Alors je dois voir comme erreur "unknown member"
-
-  Scénario: Aucune cotisation
-    Soit une base avec Jane, membre 000001, n'ayant jamais cotisé
-    Lorsque j'exécute `create-membership-fee-reciept 000001 10,00`
-    Alors je dois voir comme erreur "membership fee has not been paid for this year"
-
-  Scénario: Manque le numéro de l'adhésion
-    Lorsque j'exécute `create-membership-fee-reciept`
-    Alors je dois voir comme erreur "Usage:"
-
-  Scénario: Manque le montant de l'adhésion
-    Lorsque j'exécute `create-membership-fee-reciept 000001`
-    Alors je dois voir comme erreur "Usage:"
index c9b6f8d1c15606afddbd848bf5fe7f30862e7448..cde2215e54c6baad2fdb9ad1b333bbeb6e4edc45 100644 (file)
@@ -29,7 +29,7 @@ When /^j'exécute send\-member\-emails\-to\-advisors$/ do
   NosOignons.send_member_emails_to_advisors!
 end
 
   NosOignons.send_member_emails_to_advisors!
 end
 
-When /^j'exécute `(create\-membership\-fee\-reciept.*)`$/ do |cmd|
+When /^j'exécute `(create\-membership\-fee\-receipt.*)`$/ do |cmd|
   run_simple cmd, false
 end
 
   run_simple cmd, false
 end
 
diff --git a/features/step_definitions/receipts.rb b/features/step_definitions/receipts.rb
new file mode 100644 (file)
index 0000000..7caa60b
--- /dev/null
@@ -0,0 +1,19 @@
+#-*- coding: utf-8 -*-
+
+Then /^le fichier "(.*)" doit avoir été créé avec les reçus$/ do |filename|
+  @receipt_path = "#{ENV['NOS_OIGNONS_RECEIPTS_DIR']}/#{filename}"
+  expect(File.exists?(@receipt_path)).to be_true
+end
+
+Then /^il doit contenir le nom et l'adresse de (\w+), la date et le montant de la cotisation$/ do |name|
+  # XXX: not nice to hard code that 10,00
+  amount = "10,00"
+  # XXX: not nice to relay that it's the last member either
+  expect(@last_member['name']).to eql(name)
+
+  content = `pdftotext #{@receipt_path} -`.gsub(/\n/, ' ')
+  expect(content).to include(@last_member['name'])
+  expect(content).to include(@last_member['address'])
+  expect(content).to include(DateTime.strptime(@last_member['membership_fee_paid_on'], "%Y-%m-%d").strftime("%d/%m/%Y"))
+  expect(content).to include(amount)
+end
diff --git a/features/step_definitions/reciepts.rb b/features/step_definitions/reciepts.rb
deleted file mode 100644 (file)
index a3cb48d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#-*- coding: utf-8 -*-
-
-Then /^le fichier "(.*)" doit avoir été créé avec les reçus$/ do |filename|
-  @reciept_path = "#{ENV['NOS_OIGNONS_RECIEPTS_DIR']}/#{filename}"
-  expect(File.exists?(@reciept_path)).to be_true
-end
-
-Then /^il doit contenir le nom et l'adresse de (\w+), la date et le montant de la cotisation$/ do |name|
-  # XXX: not nice to hard code that 10,00
-  amount = "10,00"
-  # XXX: not nice to relay that it's the last member either
-  expect(@last_member['name']).to eql(name)
-
-  content = `pdftotext #{@reciept_path} -`.gsub(/\n/, ' ')
-  expect(content).to include(@last_member['name'])
-  expect(content).to include(@last_member['address'])
-  expect(content).to include(DateTime.strptime(@last_member['membership_fee_paid_on'], "%Y-%m-%d").strftime("%d/%m/%Y"))
-  expect(content).to include(amount)
-end
index de7fbc5e14ae637c429eea3eebbd148b24b2e712..1d19df75c3376f39ed6e0b585db982b5de320970 100644 (file)
@@ -21,11 +21,11 @@ Before do
   @aruba_timeout_seconds = 20
   @orig_wiki_path = ENV['NOS_OIGNONS_BOARD_WIKI_PATH']
   @orig_reminder_db_path = ENV['NOS_OIGNONS_REMINDER_DB']
   @aruba_timeout_seconds = 20
   @orig_wiki_path = ENV['NOS_OIGNONS_BOARD_WIKI_PATH']
   @orig_reminder_db_path = ENV['NOS_OIGNONS_REMINDER_DB']
-  @orig_reciepts_dir = ENV['NOS_OIGNONS_RECIEPTS_DIR']
+  @orig_receipts_dir = ENV['NOS_OIGNONS_RECEIPTS_DIR']
   ENV['NOS_OIGNONS_REMINDER_DB'] = File.join(current_dir, 'reminders.yaml')
   NosOignons::ReminderDb.instance.reload!
   ENV['NOS_OIGNONS_REMINDER_DB'] = File.join(current_dir, 'reminders.yaml')
   NosOignons::ReminderDb.instance.reload!
-  ENV['NOS_OIGNONS_RECIEPTS_DIR'] = File.join(current_dir, 'reciepts')
-  FileUtils.mkdir(ENV['NOS_OIGNONS_RECIEPTS_DIR'])
+  ENV['NOS_OIGNONS_RECEIPTS_DIR'] = File.join(current_dir, 'receipts')
+  FileUtils.mkdir(ENV['NOS_OIGNONS_RECEIPTS_DIR'])
   Mail.defaults do
     delivery_method :test
   end
   Mail.defaults do
     delivery_method :test
   end
@@ -35,6 +35,6 @@ end
 After do
   ENV['NOS_OIGNONS_REMINDER_DB'] = @orig_reminder_db_path
   ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = @orig_wiki_path
 After do
   ENV['NOS_OIGNONS_REMINDER_DB'] = @orig_reminder_db_path
   ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = @orig_wiki_path
-  ENV['NOS_OIGNONS_RECIEPTS_DIR'] = @orig_reciepts_dir
+  ENV['NOS_OIGNONS_RECEIPTS_DIR'] = @orig_receipts_dir
   FileUtils.remove_entry_secure @tmpdir
 end
   FileUtils.remove_entry_secure @tmpdir
 end
index 0f68c7c3a6abf19e32c562247027a4f8c8b926b3..66116bf7a5f7ba41892d23c3fb37677a4bc219b3 100644 (file)
@@ -26,9 +26,9 @@ module NosOignons
 
   # The following class methods are all meant to be called as command-line scripts
   class << self
 
   # The following class methods are all meant to be called as command-line scripts
   class << self
-    def create_membership_fee_reciept!(member_id, amount)
+    def create_membership_fee_receipt!(member_id, amount)
       member = NosOignons::Member.new(member_id)
       member = NosOignons::Member.new(member_id)
-      member.create_reciept!(amount)
+      member.create_receipt!(amount)
     end
 
     def list_emails!
     end
 
     def list_emails!
index 4073cc47d63cf04ba8f7d76fcccd4a7ca813da50..4bf23ca6be693b7d4976eab37a4e98a647ab6f72 100644 (file)
@@ -104,11 +104,11 @@ module NosOignons
       ReminderDb.instance.last_reminder(self)
     end
 
       ReminderDb.instance.last_reminder(self)
     end
 
-    def create_reciept!(amount)
-      require 'nos_oignons/reciept'
+    def create_receipt!(amount)
+      require 'nos_oignons/receipt'
 
 
-      reciept = Reciept.new(self, amount)
-      reciept.create!
+      receipt = Receipt.new(self, amount)
+      receipt.create!
     end
   end
 end
     end
   end
 end
diff --git a/lib/nos_oignons/receipt.rb b/lib/nos_oignons/receipt.rb
new file mode 100644 (file)
index 0000000..87869f7
--- /dev/null
@@ -0,0 +1,109 @@
+#-*- coding: utf-8 -*-
+
+require 'prawn'
+require 'prawn/measurement_extensions'
+
+module NosOignons
+  class Receipt
+    attr_reader :member, :amount
+
+    def initialize(member, amount)
+      @member = member
+      unless member.up_to_date?
+        raise ArgumentError.new("membership fee has not been paid for this year")
+      end
+      @amount = amount
+      @now = Time.now
+    end
+
+    def filename
+      dir = ENV['NOS_OIGNONS_RECEIPTS_DIR'] || 'receipts'
+      "#{dir}/receipt-#{@member.member_id}-#{@member.membership_fee_paid_on.strftime("%Y-%m-%d")}.pdf"
+    end
+
+    WINDOW_LEFT = 110.mm
+    WINDOW_TOP = 50.mm
+    WINDOW_RIGHT = 25.mm
+    WINDOW_BOTTOM = 80.mm
+    WINDOW_WIDTH = 85.mm
+    BODY_LEFT = 25.mm
+    BODY_WIDTH = 210.mm - (BODY_LEFT * 2)
+    FOOTER_HEIGHT = 25.mm
+    DARK_LOGO_COLOR = '57075f'
+    FONT_PATH = File.expand_path("../../../share/fonts/OpenSans/OpenSans.ttf", __FILE__)
+    LOGO_PATH = File.expand_path("../../../share/images/nos-oignons.png", __FILE__)
+
+    def generate_header(pdf)
+      header_height = pdf.bounds.height / 6
+      pdf.bounding_box([0, pdf.cursor], :width => pdf.bounds.width, :height => header_height) do
+        logo_width = 2 * pdf.bounds.width / 3
+        pdf.bounding_box([0, pdf.bounds.top], :width => logo_width, :height => pdf.bounds.height) do
+          pdf.image LOGO_PATH, :width => pdf.bounds.width, :align => :center, :vposition => :center
+        end
+        pdf.bounding_box([logo_width, pdf.bounds.top], :width => pdf.bounds.width / 3, :height => pdf.bounds.height) do
+          pdf.text 'Nœuds de sortie Tor financés par la communauté', :align => :center, :valign => :center
+        end
+      end
+      pdf.bounding_box([WINDOW_LEFT - pdf.bounds.absolute_left, pdf.bounds.absolute_top - WINDOW_TOP], :width => WINDOW_WIDTH, :height => WINDOW_BOTTOM - WINDOW_TOP) do
+        pdf.text member.name + "\n" + member.address, :valign => :bottom
+      end
+    end
+
+    def generate_body(pdf)
+      body_height = pdf.cursor - (pdf.bounds.height / 6)
+      pdf.move_down 30
+      pdf.bounding_box([BODY_LEFT, pdf.cursor], :width => BODY_WIDTH, :height => body_height) do
+        pdf.font_size(16) do
+          pdf.pad(25) do
+            pdf.text "Objet : reçu de cotisation"
+          end
+          margin = pdf.bounds.width / 6
+          pdf.pad_bottom(30) do
+            pdf.bounding_box([WINDOW_LEFT - pdf.bounds.absolute_left, pdf.cursor], :width => WINDOW_WIDTH) do
+              pdf.text "Le #{@now.strftime("%d/%m/%Y")}"
+            end
+          end
+          pdf.text <<-EOT.gsub(/^            /, '').gsub(/\n/, ' ')
+            Nous avons bien enregistré la cotisation annuelle de #{member.name}
+            à l'association Nos oignons reçue à la date du
+            #{member.membership_fee_paid_on.strftime("%d/%m/%Y")} pour un montant
+            de #{amount}€.
+          EOT
+          pdf.pad_top(30) do
+            pdf.bounding_box([margin, pdf.cursor], :width => 5 * margin) do
+              pdf.text "Le Conseil d'Administration"
+            end
+          end
+        end
+      end
+    end
+
+    def generate_footer(pdf)
+      pdf.bounding_box([0, FOOTER_HEIGHT + pdf.bounds.bottom], :width => pdf.bounds.width, :height => FOOTER_HEIGHT) do
+        pdf.pad_bottom(5) do
+          pdf.stroke_color DARK_LOGO_COLOR
+          pdf.dash 5
+          pdf.stroke_horizontal_rule
+        end
+        pdf.font_size(10) do
+          pdf.column_box([0, pdf.cursor], :width => pdf.bounds.width, :columns => 2) do
+            pdf.text NosOignons::CONTACT_INFO, :align => :center, :valign => :center
+            pdf.bounds.move_past_bottom
+            pdf.text NosOignons::POSTAL_ADDRESS, :align => :center, :valign => :center
+          end
+        end
+      end
+    end
+
+    def create!
+      raise "File exists!" if File.exists?(filename)
+      Prawn::Document.generate(filename) do |pdf|
+        pdf.font(FONT_PATH) do
+          generate_header(pdf)
+          generate_body(pdf)
+          generate_footer(pdf)
+       end
+      end
+    end
+  end
+end
diff --git a/lib/nos_oignons/reciept.rb b/lib/nos_oignons/reciept.rb
deleted file mode 100644 (file)
index 24948b5..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#-*- coding: utf-8 -*-
-
-require 'prawn'
-require 'prawn/measurement_extensions'
-
-module NosOignons
-  class Reciept
-    attr_reader :member, :amount
-
-    def initialize(member, amount)
-      @member = member
-      unless member.up_to_date?
-        raise ArgumentError.new("membership fee has not been paid for this year")
-      end
-      @amount = amount
-      @now = Time.now
-    end
-
-    def filename
-      dir = ENV['NOS_OIGNONS_RECIEPTS_DIR'] || 'reciepts'
-      "#{dir}/reciept-#{@member.member_id}-#{@member.membership_fee_paid_on.strftime("%Y-%m-%d")}.pdf"
-    end
-
-    WINDOW_LEFT = 110.mm
-    WINDOW_TOP = 50.mm
-    WINDOW_RIGHT = 25.mm
-    WINDOW_BOTTOM = 80.mm
-    WINDOW_WIDTH = 85.mm
-    BODY_LEFT = 25.mm
-    BODY_WIDTH = 210.mm - (BODY_LEFT * 2)
-    FOOTER_HEIGHT = 25.mm
-    DARK_LOGO_COLOR = '57075f'
-    FONT_PATH = File.expand_path("../../../share/fonts/OpenSans/OpenSans.ttf", __FILE__)
-    LOGO_PATH = File.expand_path("../../../share/images/nos-oignons.png", __FILE__)
-
-    def generate_header(pdf)
-      header_height = pdf.bounds.height / 6
-      pdf.bounding_box([0, pdf.cursor], :width => pdf.bounds.width, :height => header_height) do
-        logo_width = 2 * pdf.bounds.width / 3
-        pdf.bounding_box([0, pdf.bounds.top], :width => logo_width, :height => pdf.bounds.height) do
-          pdf.image LOGO_PATH, :width => pdf.bounds.width, :align => :center, :vposition => :center
-        end
-        pdf.bounding_box([logo_width, pdf.bounds.top], :width => pdf.bounds.width / 3, :height => pdf.bounds.height) do
-          pdf.text 'Nœuds de sortie Tor financés par la communauté', :align => :center, :valign => :center
-        end
-      end
-      pdf.bounding_box([WINDOW_LEFT - pdf.bounds.absolute_left, pdf.bounds.absolute_top - WINDOW_TOP], :width => WINDOW_WIDTH, :height => WINDOW_BOTTOM - WINDOW_TOP) do
-        pdf.text member.name + "\n" + member.address, :valign => :bottom
-      end
-    end
-
-    def generate_body(pdf)
-      body_height = pdf.cursor - (pdf.bounds.height / 6)
-      pdf.move_down 30
-      pdf.bounding_box([BODY_LEFT, pdf.cursor], :width => BODY_WIDTH, :height => body_height) do
-        pdf.font_size(16) do
-          pdf.pad(25) do
-            pdf.text "Objet : reçu de cotisation"
-          end
-          margin = pdf.bounds.width / 6
-          pdf.pad_bottom(30) do
-            pdf.bounding_box([WINDOW_LEFT - pdf.bounds.absolute_left, pdf.cursor], :width => WINDOW_WIDTH) do
-              pdf.text "Le #{@now.strftime("%d/%m/%Y")}"
-            end
-          end
-          pdf.text <<-EOT.gsub(/^            /, '').gsub(/\n/, ' ')
-            Nous avons bien enregistré la cotisation annuelle de #{member.name}
-            à l'association Nos oignons reçue à la date du
-            #{member.membership_fee_paid_on.strftime("%d/%m/%Y")} pour un montant
-            de #{amount}€.
-          EOT
-          pdf.pad_top(30) do
-            pdf.bounding_box([margin, pdf.cursor], :width => 5 * margin) do
-              pdf.text "Le Conseil d'Administration"
-            end
-          end
-        end
-      end
-    end
-
-    def generate_footer(pdf)
-      pdf.bounding_box([0, FOOTER_HEIGHT + pdf.bounds.bottom], :width => pdf.bounds.width, :height => FOOTER_HEIGHT) do
-        pdf.pad_bottom(5) do
-          pdf.stroke_color DARK_LOGO_COLOR
-          pdf.dash 5
-          pdf.stroke_horizontal_rule
-        end
-        pdf.font_size(10) do
-          pdf.column_box([0, pdf.cursor], :width => pdf.bounds.width, :columns => 2) do
-            pdf.text NosOignons::CONTACT_INFO, :align => :center, :valign => :center
-            pdf.bounds.move_past_bottom
-            pdf.text NosOignons::POSTAL_ADDRESS, :align => :center, :valign => :center
-          end
-        end
-      end
-    end
-
-    def create!
-      raise "File exists!" if File.exists?(filename)
-      Prawn::Document.generate(filename) do |pdf|
-        pdf.font(FONT_PATH) do
-          generate_header(pdf)
-          generate_body(pdf)
-          generate_footer(pdf)
-       end
-      end
-    end
-  end
-end