Class: Cfruby::Cfp_Code
- Inherits:
-
Object
- Object
- Cfruby::Cfp_Code
- Defined in:
- lib/libcfenjin/cfp_code.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#fn ⇒ Object
readonly
Returns the value of attribute fn.
-
#linenum ⇒ Object
readonly
Returns the value of attribute linenum.
-
#num ⇒ Object
readonly
Returns the value of attribute num.
Instance Method Summary collapse
-
#classname ⇒ Object
Converts the file path into a class name that is acceptable to Ruby.
-
#dump(handle = nil) ⇒ Object
Dumps to source code of a snippet to stderr - when there is a problem (for example # a syntax error during the compile phase).
-
#each ⇒ Object
Return each line with a line number.
-
#encapsulate(tlines) ⇒ Object
Return an array of (transated) source code lines encapsulated in a class and method.
-
#initialize(fn, num, action, argsp, linenum, code) ⇒ Cfp_Code
constructor
Code snipped in
fn
, block numnum
, blockaction
starting atlinenum
containingcode
. - #methodname ⇒ Object
Constructor Details
#initialize(fn, num, action, argsp, linenum, code) ⇒ Cfp_Code
Code snipped in fn
, block num num
, block action
starting at linenum
containing code
17 18 19 20 21 22 23 24 25 |
# File 'lib/libcfenjin/cfp_code.rb', line 17 def initialize fn,num,action,argsp,linenum,code @fn = fn @num = num @action = action @args = argsp @args = [] if !@args @linenum = linenum @code = code end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def action @action end |
#args ⇒ Object (readonly)
Returns the value of attribute args.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def args @args end |
#code ⇒ Object (readonly)
Returns the value of attribute code.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def code @code end |
#fn ⇒ Object (readonly)
Returns the value of attribute fn.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def fn @fn end |
#linenum ⇒ Object (readonly)
Returns the value of attribute linenum.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def linenum @linenum end |
#num ⇒ Object (readonly)
Returns the value of attribute num.
13 14 15 |
# File 'lib/libcfenjin/cfp_code.rb', line 13 def num @num end |
Instance Method Details
#classname ⇒ Object
Converts the file path into a class name that is acceptable to Ruby
73 74 75 76 77 |
# File 'lib/libcfenjin/cfp_code.rb', line 73 def classname name = @fn name = name.gsub(/[-]/,'_') name.gsub(/\W/,'').capitalize end |
#dump(handle = nil) ⇒ Object
Dumps to source code of a snippet to stderr - when there is a problem (for example # a syntax error during the compile phase). When unit tests are running output is disabled.
Output to stderr can be overridden by passing a file handle
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/libcfenjin/cfp_code.rb', line 58 def dump handle=nil begin Test::Unit.class # if unit testing do nothing rescue NameError # if not unit testing handle = $stderr if handle == nil handle.print "\n==== Snippet #{@fn}-#{@action}-#{@num}(#{@args.join(',')}) ====\n" each do | line, num | handle.print "#{num.to_s.rjust(3)}: ",line,"\n" end end end |
#each ⇒ Object
Return each line with a line number
28 29 30 31 32 33 34 |
# File 'lib/libcfenjin/cfp_code.rb', line 28 def each num = 1 @code.each do | line | yield line, @linenum+num num += 1 end end |
#encapsulate(tlines) ⇒ Object
Return an array of (transated) source code lines encapsulated in a class and method
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/libcfenjin/cfp_code.rb', line 39 def encapsulate tlines a = [] a.push "\tclass "+classname a.push "\tinclude CfrubyRuntime" a.push "\t\tdef "+methodname+"(#{@args.join(',')})" tlines.each do | line | a.push "\t\t\t"+line end a.push "\t\tend" a.push "\tend" a end |
#methodname ⇒ Object
79 80 81 |
# File 'lib/libcfenjin/cfp_code.rb', line 79 def methodname @action+@num.to_s end |