linodians 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|