nom-ruby

- The bindings for the Nom API in ruby

Examples of the headless API

Getting Started

Dependencies:
  • json
  • net/http
Setup:
  • gem install nom-ruby
  • In an initializer require 'nom-ruby'
  • Then just make the new API handle with handle = Nom::API.new

Examples:

Location (here):

handle = Nom::API.new
locations = handle.here(37.7969, -122.39955)

Location (here - paginated to page 3):

handle = Nom::API.new
locations = handle.here(37.7969, -122.39955, {
  :start => 30,
  :limit => 15
})

Geolocation based search for 'vegetarian'

handle = Nom::API.new
locations = handle.location_search('vegetarian', {
  :lat => 37.7969,
  :lng => -122.39955
})

User search for 'team'

handle = Nom::API.new
users = handle.user_search('team')
users = handle.user_search('[email protected]')

User registration (simple):

handle = Nom::API.new
user = handle.register('[email protected]', 'a_password')

User registration (with options):

handle = Nom::API.new
user = handle.register('[email protected]', 'a_password', {
  :name => "The Nom Team",
  :city => 'San Francisco',
  :screen_name => 'team'
})

User Login (identifier and password based)

handle = Nom::API.new
user = handle.('a_password', {:email => '[email protected]'})
user = handle.('a_password', {:user_nid => '4efd9128eef0a63881000001'}) ## same user a above

Yet Unimplemented

#### Not yet implemented ####
# activities = handle.activities(:user_nid => '4eccc0fbeef0a64dcf000001')
# handle.recommend(:text => 'I Just Nommed at ...', :user_nid => '4eccc0fbeef0a64dcf000001', :auth_token => '2af...fad3y')
# handle.thumb(:location_nid => "4edgc0fbadf0a64dcf110037", :user_nid => '4eccc0fbeef0a64dcf000001', :auth_token => '2af...fad3y')
#############################

Key For Response types:

  • The @ symbol is used to denote an entity unto itself. In the case of @location then in place you can logically expand a location object for @location. This is done for brevity.

All Success Results Take the Form:

{
  "status": 1,
  "message": "OK",
  "results": [
    {"result": 1},
    {"result": 2},
    ...,
    {"result": "n"}
  ]
}

All Error Results Take the Form:

{
  "status": -1,
  "message": "Some display-ready message about what the error was",
  "results": []
}

User:

{
  name: "Brian Norton",
  city: "San Francisco",
  created_at: "2011-11-23T09:46:35Z",
  image_url: "https://graph.facebook.com/679816146/picture?type=large",
  updated_at: "2011-12-20T07:06:57Z",
  url: "http://justnom.it/users/bn",
  has_joined: true,
  follower_count: 164,
  user_nid: "4eccc0fbeef0a64dcf000001",
  screen_name: "bn"
}

Location:

{
  name: "The Grove Cafe Yerba Buena",
  location_nid: "4ec8b964eef0a679f80005be",
  primary_category: "4ec8b8a7eef0a679f8000001",
  secondary_category: "4ec8b8cdeef0a679f8000151",
  cross_street: "Between 3rd St and Annie St",
  address: "690 Mission St San Francisco, CA 94105-4014",
  street: "690 Mission St",
  city: "San Francisco",
  state: "California"
  woeid: "12797156",
  rank_value: 38,
  gowalla_url: null,
  fsq_id: "4b7ef75cf964a520ee0c30e3",
  created_at: "2011-11-20T08:25:08Z",
  cost: "$$",
  updated_at: "2011-12-08T17:13:23Z",
  url: null,
  timeofday: "lunch | dinner",
  rank: "38/7821",
  phone: "415-957-0558",
  neighborhoods: "Financial District South",
  yid: "45199920"
}

Recommendation:

{
  created_at: "2011-12-21T07:21:19Z",
  location: @location,
  title: null,
  token: "7LVSG",
  recommendation_nid: "4ef188efeef0a603e3000002",
  text: "I just Nommed @ Velvet Room justnom.it/r/7LVSG",
  user: @user,
  image: {
    size: "600x320#",
    url: "http://static.justnom.it/8e637e6585609c9df21577afc2b333dabeeb32c6.medium.png",
    image_nid: "4ee56d6beef0a61a7d000003"
  },
  lng: -122.41,
  lat: 37.7892
}

Thumb

{
  user_nid: "4eccc137eef0a64dcf000002",
  created_at: "2011-12-21T05:03:22Z",
  location: @location,
  value: 1
}