Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AllNewsAPI Ruby SDK

A simple Ruby wrapper for the AllNewsAPI.

Installation

Add this line to your application's Gemfile:

gem 'allnewsapi'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install allnewsapi

Usage

require 'allnewsapi'

# Initialize the client with your API key
api_key = 'your_api_key_here'
client = AllNewsAPI::Client.new(api_key)

# Search for news articles with various options
results = client.search(
  q: 'climate change',
  lang: 'en',
  country: ['us', 'gb'],
  category: 'science',
  max: 10,
  sort_by: 'publishedAt',
  format: 'json'
)

# Get top headlines
headlines = client.headlines(
  country: 'us',
  category: 'technology',
  max: 5,
  format: 'json'
)

# Process the results
results['articles'].each do |article|
  puts "#{article['title']} - #{article['source']['name']}"
  puts article['url']
  puts "-----"
end

# Search with date ranges
require 'date'
results = client.search(
  q: 'elections',
  start_date: Date.new(2023, 1, 1),
  end_date: Date.today,
  max: 20
)

# Get results in CSV format and save to file
csv_data = client.search(
  q: 'technology',
  format: 'csv'
)

File.write('technology_news.csv', csv_data)

Available Options

Both the search and headlines methods accept the following options:

Option Type Description
q String Keywords to search for
start_date String, Date Start date (YYYY-MM-DD or Date object)
end_date String, Date End date (YYYY-MM-DD or Date object)
content Boolean Whether to include full content
lang String, Array Language(s) to filter by
country String, Array Country/countries to filter by
region String, Array Region(s) to filter by
category String, Array Category/categories to filter by
max Integer Maximum number of results (1-100)
attributes String, Array Attributes to search in (title, description, content)
page Integer Page number for pagination
sort_by String Sort by 'publishedAt' or 'relevance'
publisher String, Array Publisher(s) to filter by
format String Response format (json, csv, xlsx)

Headlines vs Search

The SDK provides two main methods for retrieving news:

  • search: Search for news articles based on keywords and filters
  • headlines: Get top headlines with the same filtering options

Both methods accept identical parameters and return the same response format.

# Get top headlines for a specific country and category
headlines = client.headlines(
  country: 'us',
  category: 'business',
  max: 10
)

# Search for specific topics
search_results = client.search(
  q: 'artificial intelligence',
  lang: 'en',
  max: 20
)

Error Handling

begin
  results = client.search(q: 'technology')
rescue AllNewsAPI::Error => e
  puts "Error #{e.status_code}: #{e.message}"
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/AllNewsAPI/ruby-sdk.

License

The gem is available as open source under the terms of the MIT License.

About

AllNewsAPI SDK for the Ruby Programming language

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages