Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 8 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,24 @@ Rust based library for interacting with the Github API. This is just a practice

## Examples

### Get a user
### Get User Information & Repositories

This request will return a single `github::users::User` struct.

```rust
extern crate "rust-github" as github;

use github::Github;
extern crate rust_github;

use rust_github::Github;

fn main() {
let github = Github::new();
let user = github.users.get("octocat");
let user = github.users.get("sriharshakappala");
let repositories = github.repositories.by_user("octocat");
println!("Name: {:?}", user.name);
println!("Email: {:?}", user.email);
println!("Location: {:?}", user.location);
}
```

### Get all repositories by user

Get a list of repositories by user, exposes a `Vec<github::repositories::Repository>`.

```rust
let github = Github::new();
let repositories = github.repositories.by_user("octocat");
for repo in repositories.iter() {
println!("{:?}", repo.name);
for repo in repositories.iter() {
println!("{:?}", repo.name);
}
}
```
2 changes: 1 addition & 1 deletion src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ extern crate curl;
use std::str;
use curl::http;

#[derive(Copy)]
#[derive(Copy,Clone)]
pub struct Client;

impl Client {
Expand Down
7 changes: 3 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#![crate_name = "rust-github"]
#![crate_name = "rust_github"]
#![crate_type = "rlib"]
#![feature(core)]
extern crate curl;
extern crate "rustc-serialize" as rustc_serialize;
extern crate rustc_serialize;

use client::Client;
use users::UserService;
Expand All @@ -16,7 +15,7 @@ pub struct Github {
impl Github {
pub fn new() -> Github {
let client = Client;
Github {
Github {
users: UserService::new(client),
repositories: RepositoryService::new(client),
}
Expand Down
4 changes: 2 additions & 2 deletions src/repositories.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ impl RepositoryService {
url.push_str(username);
url.push_str("/repos");

let req = self.client.request(url.as_slice());
let req = self.client.request(url.as_ref());

let repos: Vec<Repository> = json::decode(req.as_slice()).unwrap();
let repos: Vec<Repository> = json::decode(req.as_ref()).unwrap();

return repos;
}
Expand Down
4 changes: 2 additions & 2 deletions src/users.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ impl UserService {
let mut url = "https://api.github.com/users/".to_string();
url.push_str(name);

let req = self.client.request(url.as_slice());
let req = self.client.request(url.as_ref());

let user: User = json::decode(req.as_slice()).unwrap();
let user: User = json::decode(req.as_ref()).unwrap();

return user;
}
Expand Down