Class: Rake::Delphi::BDSVersionInfo

Inherits:
ProjectVersionInfo show all
Defined in:
lib/rake/delphi/projectinfo.rb

Direct Known Subclasses

RAD2007VersionInfo

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ProjectVersionInfo

#[], #method_missing

Constructor Details

#initialize(task) ⇒ BDSVersionInfo

Returns a new instance of BDSVersionInfo.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rake/delphi/projectinfo.rb', line 33

def initialize(task)
    super(task)
    versioninfo = get_versioninfo_tag(@content)
    # no need to continue if no version info file
    return unless versioninfo
    versioninfo = versioninfo['Delphi.Personality']['VersionInfoKeys']['VersionInfoKeys']
    use_encode = String.new.respond_to?(:encode)
    encoding = self.class.encoding
    if encoding && ! use_encode
        require 'iconv'
        iconv = Iconv.new(encoding, 'UTF-8')
    end
    versioninfo.each do |v|
        cv = v['content']
        cv = (use_encode ? cv.encode(encoding, 'UTF-8') : iconv.iconv(cv)) if cv && encoding
        @info[v['Name'].to_sym] = cv
    end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rake::Delphi::ProjectVersionInfo

Class Method Details

.encodingObject



56
57
58
59
# File 'lib/rake/delphi/projectinfo.rb', line 56

def self.encoding
    # override to set your own encoding
    nil
end

Instance Method Details

#_extObject



70
71
72
# File 'lib/rake/delphi/projectinfo.rb', line 70

def _ext
    return 'bdsproj'
end

#do_getcontentObject



61
62
63
64
65
66
67
68
# File 'lib/rake/delphi/projectinfo.rb', line 61

def do_getcontent
    if File.exists?(@file)
        @content = XmlSimple.xml_in(@file, :ForceArray => false)
    else
        warn "WARNING! Version info file #{@file} does not exists"
        @content = nil
    end
end

#get_versioninfo_tag(content) ⇒ Object



52
53
54
# File 'lib/rake/delphi/projectinfo.rb', line 52

def get_versioninfo_tag(content)
    return content
end