Sha256: 37d4e28f065d0abe1a960e7b6a1fcb9422e9d43fd72475d109a8bb29ed443d91

Contents?: true

Size: 915 Bytes

Versions: 2

Compression:

Stored size: 915 Bytes

Contents

module CoderWally
  # Client to access the API
  class Client
    # Instantiate class
    def initialize
      @api = API.new
      @builder = Builder.new
    end

    # Get badges for given user and return has collection of `Badge`s
    def get_badges_for(username)
      coder_wall = build_coder_wall_from_response(username)
      coder_wall.badges
    end

    # Get user details for given user and return a `User` object
    def get_details_for(username)
      coder_wall = build_coder_wall_from_response(username)
      coder_wall.user
    end

    # Get all the information available for a given user,
    # returns a `CoderWall` object
    def get_everything_for(username)
      build_coder_wall_from_response(username)
    end

    # Builds a CoderWall object
    def build_coder_wall_from_response(username)
      json_response = @api.fetch(username)

      @builder.build(json_response)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
coder_wally-0.1.2 lib/coder_wally/client.rb
coder_wally-0.1.1 lib/coder_wally/client.rb