linodians 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -1
- data/lib/linodians.rb +7 -4
- data/lib/linodians/employee.rb +3 -2
- data/lib/linodians/group.rb +5 -1
- data/lib/linodians/version.rb +1 -1
- data/linodians.gemspec +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d6a531248da8022ba384325e7734dbd4555769e
|
4
|
+
data.tar.gz: 1c4bd9d9e663f8b4f43706b341860dbec6872e81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb729ba404edf30d5aa7112e50e9acfaec9b03fd8cde588fdd880f1a35acc0b18bba9c762492af70971ec22f4251531b4e9c3d6a04f7fb8347a94776b7edefef
|
7
|
+
data.tar.gz: 08eb54c0c6bf280199ad25dd540f9c496d7849b8ff0f7e82a3485ba232872c4091d0ee45c87950d6cdad027f825936f484519b27cce6fb2ebafd76c040293db4
|
data/README.md
CHANGED
@@ -70,6 +70,13 @@ titles = employees.map(&:title).each_with_object(Hash.new(0)) { |i, o| o[i] += 1
|
|
70
70
|
titles.sort_by(&:last).each { |title, count| puts "#{count} -- #{title}" }
|
71
71
|
```
|
72
72
|
|
73
|
+
A helper ".lookup" method is provided on top of Array's usual tools, and it is a shortcut for `find { |x| x.username == username }`. As such, you can use it to look somebody up by their username:
|
74
|
+
|
75
|
+
```
|
76
|
+
employees = Linodians.new
|
77
|
+
my_friend = employees.lookup('caker')
|
78
|
+
```
|
79
|
+
|
73
80
|
#### Loading in existing data
|
74
81
|
|
75
82
|
If you already have a hash of data, like one created with `Linodians.new.to_json`, you can import it back in when making a new Linodians object:
|
@@ -79,7 +86,7 @@ require 'linodians'
|
|
79
86
|
require 'json'
|
80
87
|
|
81
88
|
data = File.open('data.json') { |fh| JSON.parse fh }
|
82
|
-
|
89
|
+
employees = Linodians.new(data)
|
83
90
|
```
|
84
91
|
|
85
92
|
## Installation
|
data/lib/linodians.rb
CHANGED
@@ -14,15 +14,18 @@ module Linodians
|
|
14
14
|
self::Group.new(*args)
|
15
15
|
end
|
16
16
|
|
17
|
+
def load_data(data = nil)
|
18
|
+
(data || download_data).map { |x| Employee.new x }
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
17
23
|
def download_data
|
18
24
|
Nokogiri::HTML(open(DATA_URL)).css('.employee-display').map do |block|
|
19
|
-
|
20
|
-
Employee.new data
|
25
|
+
parse_user(block).merge parse_social(block)
|
21
26
|
end
|
22
27
|
end
|
23
28
|
|
24
|
-
private
|
25
|
-
|
26
29
|
def parse_user(block)
|
27
30
|
{
|
28
31
|
username: block.at_css('img')['img-name'],
|
data/lib/linodians/employee.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'open-uri'
|
2
|
+
require 'cymbal'
|
2
3
|
|
3
4
|
module Linodians
|
4
5
|
##
|
5
6
|
# Employee object
|
6
7
|
class Employee
|
7
8
|
def initialize(params = {})
|
8
|
-
@raw = params
|
9
|
+
@raw = Cymbal.symbolize params
|
9
10
|
end
|
10
11
|
|
11
12
|
def photo
|
@@ -13,7 +14,7 @@ module Linodians
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def [](value)
|
16
|
-
@raw[value.to_sym]
|
17
|
+
@raw[value.to_sym]
|
17
18
|
end
|
18
19
|
|
19
20
|
def to_json(*args, &block)
|
data/lib/linodians/group.rb
CHANGED
@@ -8,11 +8,15 @@ module Linodians
|
|
8
8
|
alias_method :__getobj__, :members
|
9
9
|
|
10
10
|
def initialize(data = nil)
|
11
|
-
@members =
|
11
|
+
@members = Linodians.load_data(data)
|
12
12
|
@members.freeze
|
13
13
|
super(@members)
|
14
14
|
end
|
15
15
|
|
16
|
+
def lookup(username)
|
17
|
+
find { |x| x.username == username }
|
18
|
+
end
|
19
|
+
|
16
20
|
def __setobj__(_)
|
17
21
|
@members
|
18
22
|
end
|
data/lib/linodians/version.rb
CHANGED
data/linodians.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linodians
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.6.5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cymbal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.2
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rubocop
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|