Class: WebviewRuby::Webview

Inherits:
Object
  • Object
show all
Defined in:
lib/webview_ruby.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(debug: false) ⇒ Webview

Returns a new instance of Webview.



25
26
27
28
# File 'lib/webview_ruby.rb', line 25

def initialize(debug:false)
  @is_running = false
  @window = WebviewRuby.webview_create(debug ? 1 : 0, nil)
end

Instance Attribute Details

#is_runningObject (readonly)

Returns the value of attribute is_running.



23
24
25
# File 'lib/webview_ruby.rb', line 23

def is_running
  @is_running
end

Instance Method Details

#bind(name, func = nil, &block) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/webview_ruby.rb', line 56

def bind(name, func=nil, &block)
  callback = FFI::Function.new(:void, [:string, :string, :pointer]) do |seq, req, arg|
    begin 
      params = JSON.parse(req)
      if func
        func(*params)
      else
        block.call(*params)
      end
    rescue StandardError => e
      print("Error occured: #{e.full_message}. \n\n Going to terminate\n")
      terminate
    end
  end
  WebviewRuby.webview_bind(@window, name, callback, nil)
end

#destroyObject



52
53
54
# File 'lib/webview_ruby.rb', line 52

def destroy
  WebviewRuby.webview_destroy(@window)
end

#eval(js) ⇒ Object



73
74
75
# File 'lib/webview_ruby.rb', line 73

def eval(js)
  WebviewRuby.webview_eval(@window, js)
end

#init(js) ⇒ Object



77
78
79
# File 'lib/webview_ruby.rb', line 77

def init(js)
  WebviewRuby.webview_init(@window, js)
end


38
39
40
# File 'lib/webview_ruby.rb', line 38

def navigate(page)
  WebviewRuby.webview_navigate(@window, page)
end

#runObject



42
43
44
45
# File 'lib/webview_ruby.rb', line 42

def run
  @is_running = true
  WebviewRuby.webview_run(@window)
end

#set_size(width, height, hint = 0) ⇒ Object



34
35
36
# File 'lib/webview_ruby.rb', line 34

def set_size(width, height, hint=0)
  WebviewRuby.webview_set_size(@window, width, height, hint)
end

#set_title(title) ⇒ Object



30
31
32
# File 'lib/webview_ruby.rb', line 30

def set_title(title)
  WebviewRuby.webview_set_title(@window, title)
end

#terminateObject



47
48
49
50
# File 'lib/webview_ruby.rb', line 47

def terminate
  @is_running = false
  WebviewRuby.webview_terminate(@window)
end