Module: Gettc
- Defined in:
- lib/version.rb,
lib/gettc/parse.rb,
lib/gettc/print.rb,
lib/gettc/types.rb,
lib/gettc/account.rb,
lib/gettc/problem.rb,
lib/gettc/download.rb,
lib/gettc/generate.rb,
lib/gettc/signature.rb
Defined Under Namespace
Classes: Account, AuthTokenError, BadResponseError, CannotParseSignature, Case, CookieError, DownloadError, Downloader, Generator, HttpError, IDNotAvailable, Image, InvalidVariableName, Parser, Problem, ProblemDirExists, ProxyError, Signature, SignatureError, SourceDirNotExist, TArray, TargetDirNotExist, TemplateError, Type, UnsupportedType
Constant Summary
collapse
- VERSION =
"2.1"
- TypeError =
Class.new(StandardError)
- TBoolean =
Type.new(false)
- TInt =
Type.new(false)
- TLong =
Type.new(false)
- TFloat =
Type.new(false)
- TDouble =
Type.new(false)
- TChar =
Type.new(false)
- TString =
Type.new(true)
- GenerateError =
Class.new StandardError
Instance Method Summary
collapse
Instance Method Details
#parse_method_signature(str) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/gettc/signature.rb', line 47
def parse_method_signature(str)
str.strip!
sigs = []
parts = str.split("(")
raise CannotParseSignature.new(str) unless parts.size == 2
sigs << parse_signature(parts[0])
str = parts[1]
raise CannotParseSignature.new(str) unless str[-1] == ")"
str.chop.split(",").each { |sig| sigs << parse_signature(sig) }
sigs
end
|
#parse_signature(str) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/gettc/signature.rb', line 34
def parse_signature(str)
str.strip!
parts = str.split
raise CannotParseSignature.new(str) unless parts.size == 2
type = parse_type(parts[0])
name = parts[1]
raise InvalidVariableName.new(name) unless name =~ /^[a-zA-Z_]\w*$/
Signature.new(type, name)
end
|
#parse_type(str) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/gettc/types.rb', line 71
def parse_type(str)
return TArray.new(parse_type(str[0 .. -3])) if str[-2 .. -1] == "[]"
case str
when "boolean"
TBoolean
when "int"
TInt
when "long"
TLong
when "float"
TFloat
when "double"
TDouble
when "char"
TChar
when "String"
TString
else
raise UnsupportedType.new(str)
end
end
|