Class: Visualizer
- Inherits:
-
Object
- Object
- Visualizer
- Defined in:
- lib/model-visualizer/visualizer.rb
Constant Summary collapse
- FILE_PATH =
'model-visualizer.html'
Instance Method Summary collapse
- #create_sidebar ⇒ Object
- #create_visualization(title) ⇒ Object
-
#initialize(models) ⇒ Visualizer
constructor
A new instance of Visualizer.
- #launch_browser(path) ⇒ Object
Constructor Details
#initialize(models) ⇒ Visualizer
Returns a new instance of Visualizer.
8 9 10 |
# File 'lib/model-visualizer/visualizer.rb', line 8 def initialize(models) @models = models end |
Instance Method Details
#create_sidebar ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/model-visualizer/visualizer.rb', line 34 def str = '<div class="sidebar">' str += '<div class="search"><input type="search" class="searchbox" results=5 size="large" placeholder="Search"></div>' # input type="search" does not let you resize in webkit @models.sort.each do |name, model| str += '<div class="model" onclick="highlightNode(this.innerHTML)">' + name + '</div>' end str += '</div>' end |
#create_visualization(title) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/model-visualizer/visualizer.rb', line 12 def create_visualization(title) # Get file from gem directory g = Gem::Specification.find_by_name 'model-visualizer' template = File.join(g.full_gem_path, 'share/template.html') css = File.join(g.full_gem_path, 'share/main.css') d3 = File.join(g.full_gem_path, 'share/d3.min.js') tooltip = File.join(g.full_gem_path, 'share/d3.tip.js') # Insert data into file template_contents = File.read template output = template_contents.gsub(/<%= @models %>/, JSON.generate(@models)) .gsub(/<%= @css %>/, css) .gsub(/<%= @d3 %>/, d3) .gsub(/<%= @title %>/, title + ' Model Visualization') .gsub(/<%= @sidebar %>/, ) .gsub(/<%= @tooltip %>/, tooltip) # Write and open file File.open(FILE_PATH, 'w') {|file| file.puts output} self.launch_browser FILE_PATH end |
#launch_browser(path) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/model-visualizer/visualizer.rb', line 44 def launch_browser(path) if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ system "start #{path}" elsif RbConfig::CONFIG['host_os'] =~ /darwin/ system "open #{path}" elsif RbConfig::CONFIG['host_os'] =~ /linux|bsd/ system "xdg-open #{path}" end end |