Skip to content

opencomponents/ruby-oc

Repository files navigation

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 Unrendered Components

If you'd like to perform the component rendering yourself, you can request an unrendered component from a registry using a UnrenderedComponent object.

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

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

Note: UnrenderedComponents 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.

About

OpenComponents for Ruby

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages