X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fredact.rb;h=d0da5d7859b655ad2d47d78eb78e28827a4b5fc4;hb=db4c1244950c92cdc640621cbd97d9b5a947cf27;hp=59740f70f2f1e23b1477de9c3f6aec0b2cf102dc;hpb=2c25c90e2aaf57a7508a7988f58b2784d5071a7e;p=redact.git diff --git a/lib/redact/redact.rb b/lib/redact/redact.rb index 59740f7..d0da5d7 100644 --- a/lib/redact/redact.rb +++ b/lib/redact/redact.rb @@ -1,5 +1,5 @@ #-- -# $Id: redact.rb 1 2005-03-26 01:32:38Z tilman $ +# $Id: redact.rb 44 2005-06-08 17:35:49Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -27,7 +27,7 @@ require "imlib2" require "redact/part" require "redact/program" -class Object +class Object # :nodoc: undef :id end @@ -57,7 +57,7 @@ class String end module Redact - VERSION = "0.0.1" + VERSION = "0.1.1" class RedactError < StandardError; end @@ -84,12 +84,13 @@ module Redact @data = DataHash.new end - def collection(name) + def collection(name) # :yields: collection c = @collections[name] block_given? ? (yield c) : c end + protected def to_eet_name "Edje_File" end @@ -105,7 +106,7 @@ module Redact end end - class DataHash < Hash + class DataHash < Hash # :nodoc: def [](key) super.value end @@ -115,7 +116,7 @@ module Redact end end - class HashEntry + class HashEntry # :nodoc: attr_reader :key, :value def initialize(key, value) @@ -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 + class FontDirectory < Array # :nodoc: + protected def to_eet_name "Edje_Font_Directory" end @@ -138,13 +141,14 @@ module Redact end end - class FontDirectoryEntry + class FontDirectoryEntry # :nodoc: 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,15 +156,26 @@ 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 + class ImageDirectory < Array # :nodoc: def <<(entry) super entry.id = size - 1 end + protected def to_eet_name "Edje_Image_Directory" end @@ -170,11 +185,11 @@ module Redact end end - class ImageDirectoryEntry + class ImageDirectoryEntry # :nodoc: 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 + class CollectionDirectory < Array # :nodoc: + protected def to_eet_name "Edje_Part_Collection_Directory" end @@ -213,12 +240,13 @@ module Redact end end - class CollectionDirectoryEntry + class CollectionDirectoryEntry # :nodoc: def initialize(col) @name = col.name.to_str.dup.freeze @id = col.id end + protected def to_eet_name "Edje_Part_Collection_Directory_Entry" end @@ -230,8 +258,8 @@ module Redact end class Collection - attr_reader :name, :id, :data, :min, :max, :parts, :programs - attr_accessor :script + attr_reader :name, :id, :data, :min, :max, :parts, :programs, + :script def initialize(name, id) @name = name.to_str.dup.freeze @@ -247,7 +275,11 @@ module Redact @script = nil end - def part(name, type = :invalid) + def script=(v) + @script = v.to_str.dup + end + + def part(name, type = :invalid) # :yields: part p = @parts[name] if p.nil? klass = case type @@ -261,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) @@ -271,7 +303,7 @@ module Redact block_given? ? (yield p) : p end - def program(name, type = :invalid) + def program(name, type = :invalid) # :yields: program p = @programs[name] if p.nil? klass = case type @@ -322,6 +354,7 @@ module Redact end end + protected def to_eet_name "Edje_Part_Collection" end