Module: Opal::Connect

Extended by:
ConnectPlugins::Base::ClassMethods
Included in:
App::Components::Example
Defined in:
lib/opal/connect.rb,
lib/opal/connect/rspec.rb,
lib/opal/connect/version.rb,
lib/opal/connect/rake_task.rb,
lib/opal/connect/plugins/dom.rb,
lib/opal/connect/plugins/form.rb,
lib/opal/connect/plugins/html.rb,
lib/opal/connect/plugins/pjax.rb,
lib/opal/connect/plugins/modal.rb,
lib/opal/connect/plugins/rspec.rb,
lib/opal/connect/plugins/scope.rb,
lib/opal/connect/plugins/events.rb,
lib/opal/connect/plugins/server.rb,
lib/opal/connect/plugins/abilities.rb,
lib/opal/connect/plugins/current_user.rb

Defined Under Namespace

Modules: ConnectPlugins Classes: ConnectCache, ConnectError, Form, RakeTask

Constant Summary collapse

CLIENT_OPTIONS =
%w'url plugins'
STUBS =
%w'opal native promise console base64 json'
VERSION =
"0.0.22"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from ConnectPlugins::Base::ClassMethods

build, builder, included_files, javascript, plugin, plugin_paths, read_file, render, setup, write_entry_file, write_file

Class Attribute Details

.pidsObject

Returns the value of attribute pids.



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

def pids
  @pids
end

Class Method Details

.client_optionsObject



37
38
39
# File 'lib/opal/connect.rb', line 37

def client_options
  Connect.options.hash.select { |key, _| CLIENT_OPTIONS.include? key.to_s }
end

.filesObject



45
46
47
# File 'lib/opal/connect.rb', line 45

def files
  @_files ||= { connect: ['require "opal-connect"', Connect::VERSION] }
end

.included(klass) ⇒ Object



73
74
75
76
77
78
79
80
81
82
# File 'lib/opal/connect.rb', line 73

def included(klass)
  if RUBY_ENGINE != 'opal'
    file = caller[0][/[^:]*/].sub(Dir.pwd, '')[1..-1]
    included_files << file unless files.include?(file) || file[/^spec/]
  end

  klass.extend ConnectPlugins::Base::ClassMethods

  Connect.options[:plugins].each { |plug| klass.plugin plug, :included }
end

.optionsObject



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/opal/connect.rb', line 25

def options
  @_options ||= Connect::ConnectCache.new(
    livereload: false,
    url: '/connect',
    plugins: [],
    plugins_loaded: [],
    javascript: [],
    requires: [],
    setup_blocks: {},
  )
end

.setup(&block) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/opal/connect.rb', line 49

def setup(&block)
  if RUBY_ENGINE != 'opal' && block_given?
    Opal.append_path Dir.pwd unless RUBY_ENGINE == 'opal'

    instance_exec(&block)

    # make sure we include the default plugins with connect
    options[:plugins].each do |plug|
      unless options[:plugins_loaded].include? plug
        options[:plugins_loaded] << plug
        Connect.plugin(plug)
      end
    end
  end

  unless block_given?
    options[:setup_blocks].each do |klass, b|
      klass.instance_exec(&b)
    end

    options[:setup_blocks] = {}
  end
end

.stubbed_filesObject



41
42
43
# File 'lib/opal/connect.rb', line 41

def stubbed_files
  STUBS.concat(Opal::Config.stubbed_files.to_a)
end