21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/ckick/target.rb', line 21
def initialize args={}
raise IllegalInitializationError unless args.is_a?(Hash) && !args.empty?
name = args[:name] || ""
raise NoNameError, "No target name given for target" unless name.is_a?(String) && !name.empty?
@name = name
source = args[:source] || []
if source.is_a? Array
raise NoSourceError, "No source file provided for target #{@name}" if source.empty?
raise BadSourceError, "Bad source file names provided for target #{@name}: #{source}" unless source.select { |el| !el.is_a?(String) }.empty?
@source = source
elsif source.is_a? String
@source = [source]
else
raise BadSourceError, "Bad source file name provided for target #{@name}"
end
@libs = []
libs = args[:libs] || []
if libs.is_a?(Array)
raise BadLibError, "Bad library name provided for target #{@name}: #{libs}" unless libs.select { |el| !el.is_a?(String) }.empty?
libs.each do |lib|
@libs << LibraryLink.new(name: lib)
end
elsif libs.is_a?(String)
@libs << LibraryLink.new(name: libs)
else
raise BadLibError, "Bad library name provided for target #{@name}: #{libs}"
end
@parent_dir = nil
end
|