module Linodians
Module for parsing Linode employee info
Define the version
Constants
- DATA_URL
- PHOTO_URL
- VERSION
Public Class Methods
load_data(data = nil)
click to toggle source
# File lib/linodians.rb, line 19 def load_data(data = nil) (data || download_data).map { |x| Employee.new x } end
new(*args)
click to toggle source
Insert a helper .new() method for creating a new Group
object
# File lib/linodians.rb, line 15 def new(*args) self::Group.new(*args) end
Private Class Methods
download_data()
click to toggle source
# File lib/linodians.rb, line 25 def download_data raw_data.map do |username, block| parse_user(username, block).merge parse_social(block) end end
parse_class(text)
click to toggle source
# File lib/linodians.rb, line 58 def parse_class(text) text.split.last.split('-').last.to_sym end
parse_handle(type, link)
click to toggle source
# File lib/linodians.rb, line 62 def parse_handle(type, link) return link if type == :linkedin link.split('/').last end
parse_user(username, block)
click to toggle source
# File lib/linodians.rb, line 40 def parse_user(username, block) { username: username, fullname: block.at_css('strong').text, title: block.at_css('small').text } end
raw_data()
click to toggle source
# File lib/linodians.rb, line 31 def raw_data page = open(DATA_URL) # rubocop:disable Security/Open Nokogiri::HTML(page).css('div').map do |block| internal_block = block.at_xpath('div/div[@class="employee-display"]') next unless internal_block [block[:id], internal_block] end.compact end