Class: Divine::JavascriptGenerator
- Inherits:
-
JavascriptHelperMethods
- Object
- BabelHelperMethods
- JavascriptHelperMethods
- Divine::JavascriptGenerator
- Defined in:
- lib/divine/code_generators/javascript.rb
Overview
Responsible for generating Divine and structs functions
Instance Method Summary collapse
-
#generate_code(structs, opts) ⇒ Object
Generate JS Functions * Args : -
structs
-> Dictionary of structs -opts
-> Dictionary that contains generation params [file, debug, parent_class, target_dir]. -
#javascript_get_begin_module(opts) ⇒ Object
Build Header Comments.
-
#javascript_get_end_module(opts) ⇒ Object
Do nothing.
Methods inherited from JavascriptHelperMethods
#get_header_comment, #javascript_base_class_template_str, #javascript_class_template, #javascript_deserialize_internal, #javascript_get_empty_declaration, #javascript_serialize_internal
Methods inherited from BabelHelperMethods
#camelize, #format_src, #get_fresh_variable_name, #get_header_comment_text, #sanity_check
Instance Method Details
#generate_code(structs, opts) ⇒ Object
Generate JS Functions
-
Args :
-
structs
-> Dictionary of structs -
opts
-> Dictionary that contains generation params [file, debug, parent_class, target_dir]
-
764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 |
# File 'lib/divine/code_generators/javascript.rb', line 764 def generate_code(structs, opts) $debug_javascript = true if opts[:debug] base_template = Erubis::Eruby.new(javascript_base_class_template_str) keys = structs.keys.sort src = keys.map do |k| ss = structs[k] # Check different aspects the the structs vss = sanity_check(ss) javascript_class_template(StructHandler.new(vss)) end # User defined super class? toplevel = opts[:parent_class] || nil toplevel = " < #{toplevel}" if toplevel return [{file: opts[:file], src: "#{javascript_get_begin_module(opts)}#{base_template.result({ toplevel_class: toplevel })}\n\n#{src.join("\n\n")}#{javascript_get_end_module(opts)}"}] end |
#javascript_get_begin_module(opts) ⇒ Object
Build Header Comments
784 785 786 |
# File 'lib/divine/code_generators/javascript.rb', line 784 def javascript_get_begin_module(opts) "#{get_header_comment}\n\n" end |
#javascript_get_end_module(opts) ⇒ Object
Do nothing
789 790 791 |
# File 'lib/divine/code_generators/javascript.rb', line 789 def javascript_get_end_module(opts) nil end |