The project is in a healthy, maintained state
Client for exporting Extreme Overclocking's Folding@home data
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

 Project Readme

extreme_overclocking_client

Ruby client for Extreme Overclocking's Folding@home Data Export

Need more data on projects and GPUs? Try out folding_at_home_client

Getting Started

Install and add to Gemfile:

bundle add extreme_overclocking_client

Install without bundler:

gem install extreme_overclocking_client

Usage

Please read the full usage statement from Extreme Overclocking before using. This client has some simplistic rate limiting built-in, but ultimately it's up to consumers of the gem to prevent excessive queries and abuse. Neglecting to do so may result in your IP being blocked.

  • Service
  • Config
  • User
  • Team

Data can be retrieved via the Service class or individual classes with a configuration parameter.

Service

service = ExtremeOverclockingClient::Service.new(
  project_url: 'https://github.com/blakegearin/extreme_overclocking_client',
  project_name: 'ExtremeOverclockingClientTesting',
  project_version: '0.0.1',
)

user_id = 32334
name = 'EOC_Jason'
team_id = 11314

# User

user = service.user(id: user_id)
user = service.user(name: name, team_id: team_id)

# Users

users = service.users(ids: [32334, 811139])
hashes = [
  { name: name, team_id: team_id},
  { name: name, team_id: team_id},
]
users = service.users(hashes: hashes)

# Team

team = service.team(id: team_id)

# Teams

teams = service.teams(ids: [11314, 223518])

Config

Provide a project_url and project_name to let Extreme Overclocking know what your project is. These values populate referer and user-agent metadata sent with each request.

config = ExtremeOverclockingClient::Config.new(
  project_url: 'https://github.com/blakegearin/extreme_overclocking_client',
  project_name: 'ExtremeOverclockingClientTesting',
  project_version: '0.0.1',
)

User

user_id = 32334
name = 'EOC_Jason'
team_id = 11314
config = ExtremeOverclockingClient::Config.new(
  project_url: 'https://github.com/blakegearin/extreme_overclocking_client',
  project_name: 'ExtremeOverclockingClientTesting',
  project_version: '0.0.1',
)

# Fetch a user by id
# Required: config, id
user = ExtremeOverclockingClient::User.new(config: config, id: user_id)

# Fetch a user with a name and team_id
# Required: config, name, team_id
user = ExtremeOverclockingClient::User.new(config: config, name: name, team_id: team_id)

## Update a user with the latest stats
user.refresh

Team

id = 11314
config = ExtremeOverclockingClient::Config.new(
  project_url: 'https://github.com/blakegearin/extreme_overclocking_client',
  project_name: 'ExtremeOverclockingClientTesting',
  project_version: '0.0.1',
)

# Fetch a team by id
team = ExtremeOverclockingClient::Team.new(config: config, id: id)

## Update a team with the latest stats
team.refresh

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, feature requests, and pull requests are welcome.

Links