Added support for the --image_dir and --font_dir command line switches.
[redact.git] / lib / redact / redact.rb
index 260f34208c31afa73de7d7a2613406ac43c1b91b..d0da5d7859b655ad2d47d78eb78e28827a4b5fc4 100644 (file)
@@ -1,5 +1,5 @@
 #--
-# $Id: redact.rb 25 2005-04-14 19:42:06Z tilman $
+# $Id: redact.rb 44 2005-06-08 17:35:49Z tilman $
 #
 # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
 #
@@ -57,7 +57,7 @@ class String
 end
 
 module Redact
-       VERSION = "0.1.0"
+       VERSION = "0.1.1"
 
        class RedactError < StandardError; end
 
@@ -90,6 +90,7 @@ module Redact
                        block_given? ? (yield c) : c
                end
 
+               protected
                def to_eet_name
                        "Edje_File"
                end
@@ -123,12 +124,14 @@ module Redact
                        @value = value.to_str.dup.freeze
                end
 
+               protected
                def to_eet_name
                        "Edje_Data"
                end
        end
 
        class FontDirectory < Array # :nodoc:
+               protected
                def to_eet_name
                        "Edje_Font_Directory"
                end
@@ -142,9 +145,10 @@ module Redact
                attr_reader :filename
 
                def initialize(filename)
-                       @filename = filename.to_str.dup.freeze
+                       @filename = find_font(filename.to_str).freeze
                end
 
+               protected
                def to_eet_name
                        "Edje_Font_Directory_Entry"
                end
@@ -152,6 +156,16 @@ module Redact
                def to_eet_properties
                        {"entry" => [@filename]}
                end
+
+               private
+               def find_font(file)
+                       [".", OPTIONS.font_dir].each do |d|
+                               f2 = File.join(d, file)
+                               return f2 if File.file?(f2)
+                       end
+
+                       nil
+               end
        end
 
        class ImageDirectory < Array # :nodoc:
@@ -161,6 +175,7 @@ module Redact
                        entry.id = size - 1
                end
 
+               protected
                def to_eet_name
                        "Edje_Image_Directory"
                end
@@ -174,7 +189,7 @@ module Redact
                attr_reader :filename, :image, :id
 
                def initialize(filename)
-                       @filename = filename.to_str.dup.freeze
+                       @filename = find_image(filename.to_str).freeze
                        @image = Imlib2::Image.load(@filename)
                        @id = -1
                        @source_type = 1 # COMP
@@ -191,6 +206,7 @@ module Redact
                        end
                end
 
+               protected
                def to_eet_name
                        "Edje_Image_Directory_Entry"
                end
@@ -201,9 +217,20 @@ module Redact
                         "source_param" => [@source_param],
                         "id" => [@id]}
                end
+
+               private
+               def find_image(file)
+                       [".", OPTIONS.image_dir].each do |d|
+                               f2 = File.join(d, file)
+                               return f2 if File.file?(f2)
+                       end
+
+                       nil
+               end
        end
 
        class CollectionDirectory < Array # :nodoc:
+               protected
                def to_eet_name
                        "Edje_Part_Collection_Directory"
                end
@@ -219,6 +246,7 @@ module Redact
                        @id = col.id
                end
 
+               protected
                def to_eet_name
                        "Edje_Part_Collection_Directory_Entry"
                end
@@ -265,7 +293,7 @@ module Redact
                                        ImagePart
                                else
                                        raise(ArgumentError,
-                                             "invalid program type - #{type.to_s}")
+                                             "invalid part type - #{type.to_s}")
                                end
 
                                p = klass.new(self, @parts.size, name)
@@ -326,6 +354,7 @@ module Redact
                        end
                end
 
+               protected
                def to_eet_name
                        "Edje_Part_Collection"
                end