Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hn_api

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hn_api

  • 0.0.2
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

hn_api

Build Status Coverage Status

A Ruby wrapper for the Hacker News API.

Installation

gem install hn_api or add gem 'hn_api' to your Gemfile and bundle.

Configuration

Currently, the Hacker News API is read-only and does not require an API key. The API is based at https://hacker-news.firebaseio.com, and is currently on version v0.

# For now, this one line is all you need to configure
@client = HN::Client.new

# In the event of a version change, you can set the `api_url` like so
@client.configure do |config|
  config.api_url = 'https://hacker-news.firebaseio.com/v1/'
end

# And you can always reset to the defaults
@client.reset

Usage

Descriptions and examples of the supported actions are below. For a more detailed explanation of available endpoints and an exhaustive list of the properties each response returns, check out the official Hacker News API documentation.

Items GET /v0/item/#{id}.json

Fetches an item (story, comment, poll, etc.) by id. Returns a Hashie::Mash.

story = @client.item(8422599)
story.title # Hacker News API
story.url   # http://blog.ycombinator.com/hacker-news-api

comment_ids = story.kids
first_comment = @client.item(comment_ids.first)
first_comment.text # Oh man you guys, patio11 has generated...

Users GET /v0/user/#{id}.json

Fetches a user by unique case-sensitive username. Returns a Hashie::Mash.

me = @client.user('co_pl_te')
me.karma                  # 4186
me.about.split(?\n).first # Everything to everyone.
me.submitted              # an array of my submitted items' ids (stories, comments, etc.)

Live Data

The following endpoints are updated in real-time and will allow you to observe changes in front page ranking, new items, and new profiles.

Top Stories GET /v0/topstories.json

Fetches the current top 100 story ids. Returns an Array.

@client.top_stories
Max Item ID GET /v0/maxitem.json

Fetches the current largest item id. Returns a String.

@client.max_item
Changed Items and Profiles GET /v0/updates.json

Fetches item and profile changes. Returns a Hashie::Mash.

updates = @client.updates
updates.items    # an array of updated item ids
updates.profiles # an array of updated profile ids

Contributing to hn_api

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
  • Fork the project.
  • Start a feature/bugfix branch.
  • Commit and push until you are happy with your contribution.
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright (c) 2014 Rahul Horé. See LICENSE.txt for further details.

FAQs

Package last updated on 08 Oct 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc