README.rdoc in fcoury-octopi-0.0.4 vs README.rdoc in fcoury-octopi-0.0.5
- old
+ new
@@ -2,50 +2,58 @@
Octopi is a Ruby interface to GitHub API v2 (http://develop.github.com). It's under early but active development and already works.
== Example
- include Octopi
+=== Users API
- # user information
+Getting user information
+
user = User.find("fcoury")
puts "#{user.name} is being followed by #{user.followers.join(", ")} and following #{user.following.join(", ")}"
- # the bang version of followers and following
- # fetches user object for each user, but is
- # a lot more expensive
+The bang methods `followers!` and `following!` retrieves a full User object for each user login returned, so it has to be used carefully.
+
user.followers!.each do |u|
puts " - #{u.name} (#{u.login}) has #{u.public_repo_count} repo(s)"
end
+
+Searching for user
- # search user
users = User.find_all("silva")
puts "#{users.size} users found for 'silva':"
users.each do |u|
puts " - #{u.name}"
end
- # repository information
- # to get all repos for user: user.repositories
+=== Repositories API
+
repo = user.repository("octopi") # same as: Repository.find("fcoury", "octopi")
puts "Repository: #{repo.name} - #{repo.description} (by #{repo.owner}) - #{repo.url}"
puts " Tags: #{repo.tags and repo.tags.map {|t| t.name}.join(", ")}"
+
+Search:
- # commits of a the repository
- first_commit = repo.commits.first
- puts "First commit: #{first_commit.id} - #{first_commit.message} - by #{first_commit.author['name']}"
-
- # single commit information
- # details is the same as: Commit.find(commit)
- puts "Diff:"
- first_commit.details.modified.each {|m| puts "#{m['filename']} DIFF: #{m['diff']}" }
-
- # repository search
repos = Repository.find_all("ruby", "git")
puts "#{repos.size} repository(ies) with 'ruby' and 'git':"
repos.each do |r|
puts " - #{r.name}"
end
+
+Issues API integrated into the Repository object:
+
+ issue = repo.issues.first
+ puts "First open issue: #{issue.number} - #{issue.title} - Created at: #{issue.created_at}"
+
+Commits API information from a Repository object:
+
+ first_commit = repo.commits.first
+ puts "First commit: #{first_commit.id} - #{first_commit.message} - by #{first_commit.author['name']}"
+
+Single commit information:
+
+ puts "Diff:"
+ first_commit.details.modified.each {|m| puts "#{m['filename']} DIFF: #{m['diff']}" }
== Author
* Felipe Coury - http://felipecoury.com
* HasMany.info blog - http://hasmany.info