Module: Ruflet::Rails

Defined in:
lib/ruflet/rails.rb,
lib/ruflet/rails.rb,
lib/ruflet/rails/railtie.rb,
lib/ruflet/rails/form_helpers.rb,
lib/ruflet/rails/resource_view.rb,
lib/ruflet/rails/install_support.rb,
lib/ruflet/rails/protocol/runner.rb,
lib/ruflet/rails/desktop_launcher.rb,
lib/ruflet/rails/protocol/context.rb,
lib/ruflet/rails/session_registry.rb,
lib/ruflet/rails/protocol/endpoint.rb,
lib/ruflet/rails/resource_component.rb,
lib/ruflet/rails/protocol/middleware.rb,
lib/ruflet/rails/protocol/wire_codec.rb,
lib/ruflet/rails/protocol/local_server.rb,
lib/ruflet/rails/protocol/mobile_loader.rb,
lib/ruflet/rails/protocol/web_socket_connection.rb

Defined Under Namespace

Modules: DesktopLauncher, FormHelpers, InstallSupport, Protocol Classes: Railtie, ResourceComponent, ResourceView, Session, SessionRegistry, ViewRouter

Class Method Summary collapse

Class Method Details

.app(file_path) ⇒ Object

Load a Ruflet app file (MyApp.new.run) and mount it in Rails routes.



47
48
49
# File 'lib/ruflet/rails.rb', line 47

def app(file_path)
  Protocol::Runner.new.build_app_endpoint(file_path: file_path)
end

.broadcast(&block) ⇒ Object



37
38
39
# File 'lib/ruflet/rails.rb', line 37

def broadcast(&block)
  sessions.broadcast(&block)
end

.endpoint(&block) ⇒ Object

Mount inside Rails routes; route “at:” controls URL path.



42
43
44
# File 'lib/ruflet/rails.rb', line 42

def endpoint(&block)
  Protocol::Runner.new(&block).build_endpoint
end

.load_views(root) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/ruflet/rails.rb', line 22

def load_views(root)
  return [] if root.to_s.empty?

  files = Dir[File.join(root.to_s, "components", "**", "*.rb")].sort
  files += Dir[File.join(root.to_s, "**", "*_view.rb")].sort

  files.each do |file|
    Kernel.load(file)
  end
end

.mobile(file_path) ⇒ Object

Backward-compatible alias for older Rails installs.



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

def mobile(file_path)
  app(file_path)
end

.register_view(view_class) ⇒ Object



13
14
15
16
# File 'lib/ruflet/rails.rb', line 13

def register_view(view_class)
  view_classes << view_class unless view_classes.include?(view_class)
  view_class
end

.render(page, routes: nil, default: nil) ⇒ Object



18
19
20
# File 'lib/ruflet/rails.rb', line 18

def render(page, routes: nil, default: nil)
  ViewRouter.new(page, routes: routes, default: default).start
end

.sessionsObject



33
34
35
# File 'lib/ruflet/rails.rb', line 33

def sessions
  @sessions ||= SessionRegistry.new
end

.view_classesObject



9
10
11
# File 'lib/ruflet/rails.rb', line 9

def view_classes
  @view_classes ||= []
end