opencomponents

Build Status Coverage Status Code Climate Gem Version Dependency Status

OpenComponents for Ruby

Important

This gem is still under heavy development and the API is likely to change at any time.

Getting Started

Add the gem to your Gemfile and run bundle install:

gem 'opencomponents', '~> 0.4.0'

By default, the gem will attempt to use a component registry located at http://localhost:3030. If you want to use a different registry, you can configure OpenComponents to use it with:

OpenComponents.configure { |config| config.registry = 'http://some.other.host' }

Getting Rendered Components

To request an OpenComponent with its rendered HTML, you can create and load a new RenderedComponent object.

component = OpenComponents::RenderedComponent.new('my-awesome-component')
component.load

Optionally, you can also specify parameters, the component version, and additional HTTP headers to request:

component = OpenComponents::RenderedComponent.new(
  'my-awesome-component',
  params: {name: 'Kate'},
  version: '1.0.2',
  headers: {accept_language: 'emoji'}
)

Getting Pre-rendered Components

If you'd like to perform the component rendering yourself, you can request a pre-rendered component from a registry using a PrerenderedComponent object.

component = OpenComponents::PrerenderedComponent.new('my-awesome-component')
component.load

You can use the same optional params, version, and headers arguments as RenderedComponents.

Note: PrerenderedComponents will only fetch component data for you - they do not provide an interface for rendering them. At the moment, it's up to you to determine the best way to render the template.

Integrations

Individual integrations for rendering components in Rails and Sinatra are available.

Contributing

Would be rad. Open a PR or Issue if you have an idea for improvements.

License

Copyright 2015 OpenTable. See LICENSE for details.