Project

bowser

0.01
Low commit activity in last 3 years
A long-lived project that still receives updates
Minimalist browser support for Opal apps
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
~> 13.0

Runtime

~> 1.0
 Project Readme

Bowser

It's like Browser, but smaller. It provides minimal browser support for libraries and frameworks which don't need the full spectrum of support from opal-browser.

Installation

Add this line to your application's Gemfile:

gem 'bowser'

And then execute:

$ bundle

Or install it yourself as:

$ gem install bowser

Usage

Inside your front-end app:

require 'bowser'

Bowser.document # Handle to the current document
Bowser.window   # Handle to the current window

HTTP support

To load HTTP support, require it by running:

require 'bowser/http'

To make HTTP requests to your API, you can use Bowser::HTTP.fetch:

Bowser::HTTP.fetch('/api/things')

It returns a Bowser::Promise, on which you can call then or catch in order to execute a block of code based on success or failure, respectively.

Bowser::HTTP.fetch(url)
  .then(&:json) # JSONify the response
  .then { |response| do_something_with(response.json) }
  .catch { |exception| warn exception.message }

To make POST requests, you can pass the method keyword argument. The body of the post is represented in the data keyword argument. This is in contrast to the ES6 fetch function, which uses body, but requires a string. The data argument lets you pass in a string or a hash, which will be converted to JSON:

Bowser::HTTP.fetch(url, method: :post, data: { name: 'Bowser' })

Contributing

This project is governed by a Code of Conduct

  1. Fork it
  2. Branch it
  3. Hack it
  4. Save it
  5. Commit it
  6. Push it
  7. Pull-request it