Module: SourceCodeDumpable
- Included in:
- Array, ArrayNodeBuilder, Element, GeneralizedLrParser, Hash, Integer, Object, ParseTable, Production, SyntaxTreeBuilder, Token
- Defined in:
- lib/rpdf2txt-rockit/sourcecode_dumpable.rb
Defined Under Namespace
Classes: MethodNamed, ModuleMethodNamed, SpecialString
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.as_code(aString) ⇒ Object
43
44
45
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 43
def as_code(aString)
SpecialString.new(aString)
end
|
.as_method_named(name) ⇒ Object
76
77
78
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 76
def as_method_named(name)
MethodNamed.new(name)
end
|
.as_module_method_named(moduleName, methodName) ⇒ Object
81
82
83
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 81
def as_module_method_named(moduleName, methodName)
ModuleMethodNamed.new(moduleName, methodName)
end
|
.indent_lines(string, indentString = " ") ⇒ Object
102
103
104
105
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 102
def indent_lines(string, indentString = " ")
indentString + string.split("\n").join("\n" + indentString) +
(string[-1,1] == "\n" ? "\n" : "")
end
|
.name_hash(array, &nameGenerator) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 21
def name_hash(array, &nameGenerator)
conflicthash, namehash, counts = Hash.new, Hash.new, Hash.new([0,nil])
array.each do |element|
name = nameGenerator.call(element)
if conflicthash[name]
count, first = counts[name]
if count == 0
namehash.delete name
namehash[name + "1"] = first
counts[name][0] = 1
end
name += "#{counts[name][0] += 1}"
else
counts[name] = [0,element]
conflicthash[name] = true
end
namehash[name] = element
end
namehash.invert end
|
Instance Method Details
#create_new ⇒ Object
17
18
19
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 17
def create_new
type_to_src + ".new(%s)"
end
|
#new_of_my_type(*args) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 52
def new_of_my_type(*args)
create_new % args.map do |arg|
if arg.class == SpecialString
arg
elsif arg.methods.include?("to_src")
arg.to_src
else
arg.inspect
end
end.join(",")
end
|
#parameter_named(name) ⇒ Object
48
49
50
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 48
def parameter_named(name)
SpecialString.new(aString)
end
|
#to_compact_src(name = nil, nameHash = {}) ⇒ Object
9
10
11
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 9
def to_compact_src(name = nil, nameHash = {})
to_src(name, nameHash)
end
|
#to_src_in_module(name, moduleName, *restargs) ⇒ Object
2
3
4
5
6
7
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 2
def to_src_in_module(name, moduleName, *restargs)
str = to_src(name, *restargs)
"module #{moduleName}\n" +
indent_lines(str) + (str[-1,1] == "\n" ? "" : "\n") +
"end\n"
end
|
#type_to_src ⇒ Object
13
14
15
|
# File 'lib/rpdf2txt-rockit/sourcecode_dumpable.rb', line 13
def type_to_src
self.class.inspect.split("::").last
end
|