Project

nimbu-api

0.0
Low commit activity in last 3 years
No release in over a year
Nimbu is the easiest way to build a beautiful multi-lingual online store! See http://nimbu.io for more information.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

NimbuAPI

Gem Version

A Ruby wrapper for the Nimbu API.

Installation

Install the gem by issuing

gem install nimbu-api

or put it in your Gemfile and run bundle install

gem "nimbu-api"

Usage

To use the gem, create a new client instance

nimbu = Nimbu.new

You can supply following configuration parameters, such as

  auto_pagination  # by default false, set to true traverses requests page links
  oauth_token      # oauth authorization token
  basic_auth       # login:password string
  client_id        # oauth client id
  client_secret    # oauth client secret
  subdomain        # the nimbu administration subdomain used in requets if none provided
  endpoint         # nimbu enterprise api endpoint
  site             # nimbu enterprise api web endpoint
  ssl              # ssl settings
  per_page         # number of items per page, max 100
  user_agent       # custom user agent name, by default 'Nimbu Ruby Client'

which are used throughout the API. These can be passed directly as hash options:

nimbu = Nimbu.new(oauth_token: 'token')

Alternatively, you can configure the Nimbu settings by passing a block, for instance, with custom enterprise endpoint and website like

nimbu = Nimbu.new do |config|
  config.endpoint    = 'https://api.company.com'
  config.site        = 'https://www.company.com'
  config.oauth_token = 'token'
  config.ssl         = {:verify => false}
end

You can authenticate either using OAuth authentication or through basic authentication by passing your login and password:

nimbu = Nimbu.new(login:'peter', password:'...')

or use following convenience method:

nimbu = Nimbu.new(basic_auth: 'login:password')

This gem follows the Nimbu API hierarchy. This means, i.e. if you want to create a new entry for a given channel, you can lookup the nimbu api spec and parse the request as in nimbu.channels(channel_id: 'mychannel').entries.create

The response is always of type [Hashie::Mash] and allows to traverse all the json response attributes like method calls i.e.

entries = Nimbu::Channel::Entries.new(oauth_token: '...', subdomain:'...', channel_id:'...')
entries.all do |entry|
  puts entry.title
end

Arguments & Parameters

The library allows for flexible arguments parsing. This means arguments can be passed during instance creation:

  channel = Nimbu::Channel.new(oauth_token:'...', subdomain:'...', channel_id:'...')
  channel.entries.list(state: 'public')

Further, arguments can be passed directly inside method called but then the order of parameters matters and hence please consult the method documentation or Nimbu specification. For instance:

  channel = Nimbu::Channel.new(oauth_token: '...', subdomain: '...')
  channel.entries.list(channel_id: '...', state: 'public')

Similarly, the arguments for the request can be passed inside the current scope such as:

  channel = Nimbu::Channel.new(oauth_token: '...', subdomain: '...')
  channel.entries(channel_id: '...').list(state: 'public')