Sha256: cd63b833c8d734c5b46609aa9e683a0b7de5c4870d88a943c1c9b54494519db5
Contents?: true
Size: 1.63 KB
Versions: 14
Compression:
Stored size: 1.63 KB
Contents
module TheCity class RoleList include Enumerable attr_reader :total_entries, :total_pages, :per_page, :current_page # Constructor. # # @param options A hash of options for loading the skill list. # # Options: # :page - The page number to get. # :reader - The Reader to use to load the data. # # # Examples: # RoleList.new(reader, {:page => 3}) # # RoleList.new(reader, {:page => 2}) # def initialize(options = {}) options[:page] ||= 1 reader = options[:reader] || TheCity::RoleListReader.new(options) @json_data = reader.load_feed @total_entries = @json_data['total_entries'] @total_pages = @json_data['total_pages'] @per_page = @json_data['per_page'] @current_page = @json_data['current_page'] end # All the roles in the list. # # @return array of role names. def all_roles return [] if @json_data['roles'].nil? @json_data['roles'].collect { |role| role['title'] } end alias :roles :all_roles # Get the specified role. # # @param index The index of the role to get. # # @return [Role] def [](index) Role.new( @json_data['roles'][index] ) if @json_data['roles'][index] end # This method is needed for Enumerable. def each &block @json_data['roles'].each{ |role| yield( Role.new(role) )} end # Alias the count method alias :size :count # Checks if the list is empty. # # @return True on empty, false otherwise. def empty? @json_data['roles'].empty? end end end
Version data entries
14 entries across 14 versions & 1 rubygems