humans_rb 0.0.3 → 0.0.4
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/lib/humans_rb/parser.rb +1 -1
- data/lib/humans_rb/version.rb +1 -1
- data/lib/humans_rb.rb +13 -5
- data/script/console +1 -1
- data/spec/fixtures/humansorg.txt +73 -0
- data/spec/humans_rb_spec.rb +8 -2
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97634240b35ca026889376e2e6949e289dd35451
|
4
|
+
data.tar.gz: 30ffa9fe37ad1b87715bdb2e6bcb72a533e037ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19b1bc3ae7f4542fbda8424c73563485d9b8c1fa8009c95a9add47ccad0e47536829217fc639e3223d3364c5b44d654cb95a7dd86db17ab7b1a79998f446b27d
|
7
|
+
data.tar.gz: 6d7f0cbe3b33a8446951f22e6a968a77b1701dbcf1f9f8ec1b6c30d291a90814e33a71ea345126e6c91b8896155ac7f13da21ba2b8bb235e80baf11b7cc85733
|
data/lib/humans_rb/parser.rb
CHANGED
@@ -18,7 +18,7 @@ class HumansRb
|
|
18
18
|
rule(:colon) { str(":") }
|
19
19
|
rule(:key) { slash_star.absent? >> newline.absent? >> match("[^:\n]").repeat.as(:key) >> colon }
|
20
20
|
rule(:value) { newline.absent? >> match("[^\n]").repeat.as(:value) }
|
21
|
-
rule(:key_value_pair) { whitespace? >> key >> space >> value >> newline }
|
21
|
+
rule(:key_value_pair) { whitespace? >> key >> space? >> value >> newline }
|
22
22
|
rule(:key_value_pairs) { key_value_pair.repeat(1).as(:values) }
|
23
23
|
|
24
24
|
rule(:name) { slash_star.absent? >> match("[^\t\n:]").repeat(1).as(:name) >> newline }
|
data/lib/humans_rb/version.rb
CHANGED
data/lib/humans_rb.rb
CHANGED
@@ -10,13 +10,12 @@ class HumansRb
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def body
|
13
|
-
|
13
|
+
if @url_or_string =~ /^http/
|
14
14
|
@url_or_string << "/humans.txt" if !(@url_or_string =~ /humans\.txt$/)
|
15
|
-
@url_or_string = Typhoeus.get(@url_or_string, accept_encoding: "gzip").body
|
16
|
-
encode('UTF-8', {:invalid => :replace, :undef => :replace, :replace => '?'})
|
17
|
-
else
|
18
|
-
@url_or_string.encode('UTF-8', {:invalid => :replace, :undef => :replace, :replace => '?'})
|
15
|
+
@url_or_string = Typhoeus.get(@url_or_string, accept_encoding: "gzip").body
|
19
16
|
end
|
17
|
+
|
18
|
+
normalize_string(@url_or_string)
|
20
19
|
end
|
21
20
|
|
22
21
|
def parse
|
@@ -24,4 +23,13 @@ class HumansRb
|
|
24
23
|
rescue Parslet::ParseFailed => failure
|
25
24
|
puts failure.cause.ascii_tree
|
26
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def normalize_string(string)
|
30
|
+
string = string.force_encoding("UTF-8")
|
31
|
+
string = string.encode("UTF-8", :invalid => :replace, :replace => "")
|
32
|
+
string = string.gsub(/^\uFEFF/, "")
|
33
|
+
string << "\n"
|
34
|
+
end
|
27
35
|
end
|
data/script/console
CHANGED
@@ -0,0 +1,73 @@
|
|
1
|
+
/* TEAM */
|
2
|
+
Chef:Juanjo Bernabeu
|
3
|
+
Contact: hello [at] humanstxt.org
|
4
|
+
Twitter: @juanjobernabeu
|
5
|
+
From:Barcelona, Catalonia, Spain
|
6
|
+
|
7
|
+
UI developer: Maria Macias
|
8
|
+
Twitter: @maria_ux
|
9
|
+
From:Barcelona, Catalonia, Spain
|
10
|
+
|
11
|
+
One eyed illustrator: Carlos Mañas
|
12
|
+
Twitter: @oneeyedman
|
13
|
+
From:Madrid, Spain
|
14
|
+
|
15
|
+
Standard Man: Abel Cabans
|
16
|
+
Twitter: @abelcabans
|
17
|
+
From:Barcelona, Catalonia, Spain
|
18
|
+
|
19
|
+
Web designer: Abel Sutilo
|
20
|
+
Twitter: @abelsutilo
|
21
|
+
From:Sevilla, Andalucia, Spain
|
22
|
+
|
23
|
+
/* THANKS */
|
24
|
+
|
25
|
+
(First) EN Translator: Jos Flores
|
26
|
+
Twitter: @prosciuttos
|
27
|
+
From: Barcelona, Catalonia, Spain
|
28
|
+
|
29
|
+
CA Translator: Eva AC
|
30
|
+
Twitter: @evaac
|
31
|
+
From:Barcelona, Catalonia, Spain
|
32
|
+
|
33
|
+
EN Translator: Marta Armada
|
34
|
+
Twitter: @martuishere
|
35
|
+
From: Barcelona, Catalonia, Spain
|
36
|
+
|
37
|
+
RU Translator: Alexey Bass
|
38
|
+
Twitter: @alexey_bass
|
39
|
+
Location: Israel, Netanya
|
40
|
+
|
41
|
+
RU Translator: Vladimir Epifanov
|
42
|
+
Twitter: @voldmar
|
43
|
+
Location: Moscow, Russia
|
44
|
+
|
45
|
+
NL Translator: Rowdy Rabouw
|
46
|
+
Twitter: @rowdyrabouw
|
47
|
+
Location: Gouda, The Netherlands
|
48
|
+
|
49
|
+
DE Translator: Dennis Fischer
|
50
|
+
Twitter: @ichderfisch
|
51
|
+
Location: Düsseldorf / Germany
|
52
|
+
|
53
|
+
CZ Translator: Daniel Kršiak
|
54
|
+
Twitter: @krsiakdaniel
|
55
|
+
Location: Czech Republic
|
56
|
+
|
57
|
+
ZH Translator: Ana Villalba
|
58
|
+
Location: Spain
|
59
|
+
|
60
|
+
JA Translator: Clémence Haure
|
61
|
+
Location: Spain
|
62
|
+
|
63
|
+
FR Translator: Thibaud Desodt
|
64
|
+
Location: Belgium
|
65
|
+
|
66
|
+
Media Queries by: Marta Armada (@martuishere) and Javier Usobiaga (@htmlboy)
|
67
|
+
|
68
|
+
|
69
|
+
/* SITE */
|
70
|
+
Last update:2012/02/04
|
71
|
+
Language: Català / Czech / Deutsch / English / Castellano / Japanese / Dutch / Russian / Chinese
|
72
|
+
Doctype:HTML5
|
73
|
+
IDE: Sublime Text, Notepad++, FileZilla, Photoshop
|
data/spec/humans_rb_spec.rb
CHANGED
@@ -7,18 +7,24 @@ describe "humans.rb" do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return the string if passed" do
|
10
|
-
expect(HumansRb.new("foo").body).to eql("foo")
|
10
|
+
expect(HumansRb.new("foo").body).to eql("foo\n")
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should return the body if a URL is passed" do
|
14
14
|
stub_request(:get, "http://ben.balter.com/humans.txt").
|
15
15
|
to_return(:status => 200, :body => "foo", :headers => {})
|
16
16
|
|
17
|
-
expect(HumansRb.new("http://ben.balter.com/humans.txt").body).to eql("foo")
|
17
|
+
expect(HumansRb.new("http://ben.balter.com/humans.txt").body).to eql("foo\n")
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should return headings" do
|
21
21
|
output = @humans.parse
|
22
22
|
expect(output.count).to eql(2)
|
23
23
|
end
|
24
|
+
|
25
|
+
it "should parse the humanstxt.org humans.txt file" do
|
26
|
+
humans = HumansRb.new(load_fixture("humansorg.txt")).parse
|
27
|
+
expect(humans).to_not be_nil
|
28
|
+
expect(humans[:team]).to_not be_nil
|
29
|
+
end
|
24
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: humans_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Balter
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- script/console
|
132
132
|
- script/release
|
133
133
|
- spec/fixtures/humans.txt
|
134
|
+
- spec/fixtures/humansorg.txt
|
134
135
|
- spec/humans_parser_spec.rb
|
135
136
|
- spec/humans_rb_spec.rb
|
136
137
|
- spec/humans_transform_spec.rb
|
@@ -161,6 +162,7 @@ specification_version: 4
|
|
161
162
|
summary: A Ruby gem for parsing humans.txt files
|
162
163
|
test_files:
|
163
164
|
- spec/fixtures/humans.txt
|
165
|
+
- spec/fixtures/humansorg.txt
|
164
166
|
- spec/humans_parser_spec.rb
|
165
167
|
- spec/humans_rb_spec.rb
|
166
168
|
- spec/humans_transform_spec.rb
|