ubi 0.0.3 → 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/.travis.yml +13 -0
- data/Gemfile +2 -0
- data/Guardfile +2 -2
- data/README.md +9 -1
- data/Rakefile +1 -1
- data/lib/ubi/consultor.rb +1 -1
- data/lib/ubi/memoria.rb +31 -13
- data/lib/ubi/memorias/address.rb +44 -18
- data/lib/ubi/memorias/document.rb +6 -8
- data/lib/ubi/memorias/email.rb +7 -2
- data/lib/ubi/memorias/phone.rb +13 -15
- data/lib/ubi/memorias/site.rb +20 -8
- data/lib/ubi/version.rb +1 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/ubi/memorias/address_spec.rb +10 -10
- data/spec/ubi/memorias/email_spec.rb +4 -0
- data/spec/ubi/memorias/phone_spec.rb +24 -2
- data/spec/ubi/memorias/site_spec.rb +7 -3
- data/ubi.gemspec +5 -6
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a9073e8291c6e092b1f3585191aa4c2c91e524d
|
4
|
+
data.tar.gz: ceee4c37c817147c7f4a8f0d4627b3c5108ccbf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 796e569c777e65d7a8aca7ceb5cb9579fc5f52bfdef22a16cb8b54ec2b48854e0ee207c66d90e2c6bead5fa5622ae328760cf8bad111859059695002871ad6c3
|
7
|
+
data.tar.gz: 7791238d12cf001ed5e2d36d86645e42debe21f3a968ed9cc3c21e18636dcba4c1c44ce7714e526f78330827cb812826c3d261f4542a17729799452b75aa996e
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Guardfile
CHANGED
@@ -11,6 +11,6 @@ guard :rspec, cmd: 'bundle exec rspec' do
|
|
11
11
|
watch(/^lib\/(.+)\.rb$/) { |m| "spec/#{m[1]}_spec.rb" }
|
12
12
|
watch(/^generators\/(.+)\.rb$/) { |_m| 'spec/schemaless/worker_spec' }
|
13
13
|
|
14
|
-
watch('lib/ubi.rb')
|
15
|
-
watch('spec/spec_helper.rb')
|
14
|
+
watch('lib/ubi.rb') { 'spec' }
|
15
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
16
16
|
end
|
data/README.md
CHANGED
@@ -5,6 +5,14 @@
|
|
5
5
|
\___/ |_.__/ |_|
|
6
6
|
|
7
7
|
|
8
|
+
|
9
|
+
[](http://badge.fury.io/rb/ubi)
|
10
|
+
[](https://codeclimate.com/github/nofxx/ubi)
|
11
|
+
[](https://coveralls.io/r/nofxx/ubi?branch=master)
|
12
|
+
[](https://gemnasium.com/nofxx/ubi)
|
13
|
+
[](https://travis-ci.org/nofxx/ubi)
|
14
|
+
|
15
|
+
|
8
16
|
Ubi finds information in the subject's webpage(s).
|
9
17
|
A forager.
|
10
18
|
|
@@ -24,7 +32,7 @@ A forager.
|
|
24
32
|
- Social
|
25
33
|
- Files
|
26
34
|
- Documents
|
27
|
-
-
|
35
|
+
- Addresses
|
28
36
|
- Logo/Images
|
29
37
|
|
30
38
|
|
data/Rakefile
CHANGED
data/lib/ubi/consultor.rb
CHANGED
data/lib/ubi/memoria.rb
CHANGED
@@ -3,17 +3,21 @@ module Ubi
|
|
3
3
|
# Memoria Base
|
4
4
|
class Base
|
5
5
|
include ActiveModel::Validations
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :text, :hint, :opts
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
@
|
10
|
-
@
|
11
|
-
@
|
8
|
+
def initialize(text, hint = nil, opts = {})
|
9
|
+
@text = text
|
10
|
+
@hint = hint
|
11
|
+
@opts = opts
|
12
|
+
parser
|
13
|
+
end
|
14
|
+
|
15
|
+
def parser
|
16
|
+
# Implemented on subclasses
|
12
17
|
end
|
13
18
|
|
14
|
-
# Format for #to_s
|
15
19
|
def format
|
16
|
-
|
20
|
+
text
|
17
21
|
end
|
18
22
|
|
19
23
|
def to_s
|
@@ -26,7 +30,7 @@ module Ubi
|
|
26
30
|
#
|
27
31
|
def inherited(base)
|
28
32
|
fail "Already defined #{base.key}" if Ubi.memorias.include?(base)
|
29
|
-
puts "With memoria #{base}"
|
33
|
+
# puts "With memoria #{base}"
|
30
34
|
Ubi.memorias << base
|
31
35
|
end
|
32
36
|
|
@@ -34,17 +38,31 @@ module Ubi
|
|
34
38
|
case datum
|
35
39
|
when String then datum
|
36
40
|
when Nokogiri::HTML then datum.data.text
|
41
|
+
# when PDF / DOC / IMG (tesseract it =) then datum.data.text
|
37
42
|
else fail "Can't parse `#{datum.class}`"
|
38
43
|
end
|
39
44
|
end
|
40
45
|
|
41
|
-
|
42
|
-
|
43
|
-
|
46
|
+
#
|
47
|
+
# Scan for memoria regex and map to new memoria if found
|
48
|
+
#
|
49
|
+
# @returns Array [Memoria, Memoria...]
|
50
|
+
def parse(datum, hint = :br)
|
51
|
+
fail "Not implemented by #{self}" unless defined?(:regex)
|
52
|
+
extract_text(datum).scan(regex(hint))
|
53
|
+
.map { |r| new(r.first, hint) }
|
54
|
+
end
|
55
|
+
|
56
|
+
# Scans and removes matches from original
|
57
|
+
#
|
58
|
+
def parse!(datum, hint = :br)
|
59
|
+
res = parse(datum, hint)
|
60
|
+
res.each { |m| datum.tap { |d| d.slice!(m.text) }.strip! }
|
61
|
+
res
|
44
62
|
end
|
45
63
|
|
46
64
|
#
|
47
|
-
#
|
65
|
+
# Machine-readable name of this class
|
48
66
|
#
|
49
67
|
def key
|
50
68
|
@key ||= to_s.split('::').last.downcase.to_sym
|
@@ -52,7 +70,7 @@ module Ubi
|
|
52
70
|
end
|
53
71
|
|
54
72
|
#
|
55
|
-
# Human-readable name of
|
73
|
+
# Human-readable name of this class
|
56
74
|
#
|
57
75
|
def name
|
58
76
|
to_s.split('::').last
|
data/lib/ubi/memorias/address.rb
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
module Ubi
|
2
2
|
module Memoria
|
3
|
-
# An
|
3
|
+
# An address in this world
|
4
|
+
#
|
5
|
+
# Ignorace < Bliss
|
6
|
+
#
|
7
|
+
# Yeah, this needs lots of work.
|
8
|
+
# Geonames in memory country with zip/cities and regions,
|
9
|
+
# and some neural thing. And geocode to use openstreet or else.
|
10
|
+
#
|
11
|
+
# Don't hesitate to improve your AI skills here.
|
12
|
+
#
|
4
13
|
class Address < Base
|
5
|
-
DIVIDERS =
|
14
|
+
DIVIDERS = %r{[,\-\|/]}
|
6
15
|
SPLIT = /(?<=\D)#{DIVIDERS}|#{DIVIDERS}(?=\D)/
|
7
16
|
REGEXES = {
|
8
17
|
br: {
|
9
|
-
prefix: %w( r rua av avenida
|
18
|
+
prefix: %w( r rua av avenida pc pca praça pc pca praca tv travessa est estrada rod rodovia ),
|
10
19
|
number: %w( n no nº num numero km ),
|
11
|
-
ext: %w( comp obs ap apto apart apartamento andar
|
12
|
-
zip: /\d{5}[-]\d{3}/
|
20
|
+
ext: %w( comp obs ap apto apart apartamento andar ),
|
21
|
+
zip: /\d{5}\s?[-]\s?\d{3}/
|
13
22
|
},
|
14
23
|
us: {
|
15
24
|
prefix: %w( st street av avenue road ),
|
@@ -18,23 +27,33 @@ module Ubi
|
|
18
27
|
}
|
19
28
|
|
20
29
|
attr_accessor :name, :parts, :words, :zip, :place, :number,
|
21
|
-
:city, :region, :nation, :extra
|
30
|
+
:city, :region, :nation, :extra, :clean
|
31
|
+
|
32
|
+
def parse_zip
|
33
|
+
@zip = text.scan(REGEXES[:br][:zip]).first
|
34
|
+
return unless zip
|
35
|
+
@zip = zip.gsub(/\D/, '').sub(*Address.zip_format[:br])
|
36
|
+
clean.slice!(zip)
|
37
|
+
end
|
38
|
+
|
39
|
+
def fetch_possible
|
40
|
+
parse_zip
|
41
|
+
@region = clean.scan(/\W([A-Z]{2})\W/).first.first
|
42
|
+
@number = clean.scan(/\d+/).join(' ')
|
43
|
+
end
|
22
44
|
#
|
23
45
|
#
|
24
46
|
# Init, remove non word chars
|
25
47
|
#
|
26
|
-
def
|
27
|
-
@
|
28
|
-
|
29
|
-
# @region = value.match(/\W([A-Z]{2})\W/)[1]
|
30
|
-
# @number = value.match(/\w*\d+\w*/)
|
31
|
-
|
32
|
-
@parts = value.split(SPLIT).map { |v| v.strip.chomp }
|
48
|
+
def parser
|
49
|
+
@clean = Address.sanitize(text)
|
50
|
+
@parts = clean.split(SPLIT).map { |v| v.strip.chomp }
|
33
51
|
@words = parts.map { |pt| pt.split(/\s+/) }
|
52
|
+
fetch_possible
|
34
53
|
end
|
35
54
|
|
36
55
|
def format(location = :br)
|
37
|
-
|
56
|
+
text.sub(*self.class.formats[location])
|
38
57
|
end
|
39
58
|
|
40
59
|
class << self
|
@@ -45,8 +64,9 @@ module Ubi
|
|
45
64
|
# "\n" -> "-"
|
46
65
|
# " -" -> "-"
|
47
66
|
#
|
48
|
-
def sanitize(
|
49
|
-
|
67
|
+
def sanitize(txt)
|
68
|
+
v = ActiveSupport::Inflector.transliterate(txt)
|
69
|
+
v.gsub(/\s+/, ' ').gsub(/\\n/, '-')
|
50
70
|
.gsub(/\s?(#{DIVIDERS})\s?/, '\1')
|
51
71
|
end
|
52
72
|
|
@@ -58,8 +78,14 @@ module Ubi
|
|
58
78
|
}
|
59
79
|
end
|
60
80
|
|
61
|
-
def
|
62
|
-
|
81
|
+
def zip_format
|
82
|
+
{
|
83
|
+
br: [/(\d{5})(\d{3})/, '\1-\2']
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
def regex(hint)
|
88
|
+
/((?:#{REGEXES[hint][:prefix].join('|')}).*)/i
|
63
89
|
end
|
64
90
|
|
65
91
|
def plural
|
@@ -9,16 +9,14 @@ module Ubi
|
|
9
9
|
# cl: RUN/RUT
|
10
10
|
#
|
11
11
|
class Document < Base
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def initialize(value)
|
17
|
-
@value = value.gsub(/\W/, '')
|
12
|
+
attr_reader :number
|
13
|
+
|
14
|
+
def parser
|
15
|
+
@number = text.gsub(/\D/, '')
|
18
16
|
end
|
19
17
|
|
20
18
|
def format(location = :br)
|
21
|
-
|
19
|
+
number.sub(*self.class.formats[location])
|
22
20
|
end
|
23
21
|
|
24
22
|
#
|
@@ -27,7 +25,7 @@ module Ubi
|
|
27
25
|
class << self
|
28
26
|
def regexes
|
29
27
|
{
|
30
|
-
br: /(\d{14}|\d{2}\.?\d{3}\.?\d{3}\/?\d{4}
|
28
|
+
br: /(\d{14}|\d{2}\.?\d{3}\.?\d{3}\/?\d{4}\-?\d{2})/,
|
31
29
|
cl: /\d{2}\.\d{3}\.\d{3}[-][0-9kK]/,
|
32
30
|
us: /\d{3}[-]\d{2}[-]\d{4}/
|
33
31
|
}
|
data/lib/ubi/memorias/email.rb
CHANGED
@@ -10,8 +10,13 @@ module Ubi
|
|
10
10
|
#
|
11
11
|
# Email regex
|
12
12
|
#
|
13
|
-
def regex
|
14
|
-
%r{
|
13
|
+
def regex(_hint)
|
14
|
+
%r{
|
15
|
+
([a-z0-9!#$%&'*+/=?^_`{|}~-]+
|
16
|
+
(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@
|
17
|
+
(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+
|
18
|
+
(?:[a-z0-9-]*[a-z0-9])?)
|
19
|
+
}x
|
15
20
|
end
|
16
21
|
end
|
17
22
|
end
|
data/lib/ubi/memorias/phone.rb
CHANGED
@@ -2,19 +2,13 @@ module Ubi
|
|
2
2
|
module Memoria
|
3
3
|
# A Phone! mobile? landline? who is calling???
|
4
4
|
class Phone < Base
|
5
|
-
attr_reader :number
|
5
|
+
attr_reader :number
|
6
6
|
|
7
|
-
def
|
8
|
-
@
|
9
|
-
@chunk = chunk
|
10
|
-
parse_number
|
7
|
+
def parser
|
8
|
+
@number = Phonelib.parse(text.gsub(/\D/, ''), hint)
|
11
9
|
end
|
12
10
|
|
13
|
-
def
|
14
|
-
@number = Phonelib.parse(chunk.gsub(/\D/, ''), @hint)
|
15
|
-
end
|
16
|
-
|
17
|
-
def to_s
|
11
|
+
def format
|
18
12
|
number && number.national
|
19
13
|
end
|
20
14
|
|
@@ -24,10 +18,14 @@ module Ubi
|
|
24
18
|
|
25
19
|
class << self
|
26
20
|
# http://rubular.com/r/tEHB6KcZzk
|
27
|
-
def regex
|
28
|
-
/
|
21
|
+
def regex(hint = nil)
|
22
|
+
/
|
23
|
+
(?:^|\s)((?:\+\(?\d{1,3}\W)?[\._\-\/\s]*
|
24
|
+
\(?\s*?\d{2,3}\s*?\)?[\._\-\/\s]*\d{3,5}
|
25
|
+
[\._\-\/\s]*\d{4,5})(?:\s|$)
|
26
|
+
/x
|
29
27
|
end
|
30
28
|
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
29
|
+
end # Phone
|
30
|
+
end # Memoria
|
31
|
+
end # Ubi
|
data/lib/ubi/memorias/site.rb
CHANGED
@@ -5,19 +5,31 @@ module Ubi
|
|
5
5
|
#
|
6
6
|
# Prefix http:// if there isn't one defined
|
7
7
|
def format
|
8
|
-
|
8
|
+
text =~ /^http/ ? text : "http://#{text}"
|
9
9
|
end
|
10
10
|
|
11
11
|
class << self
|
12
12
|
#
|
13
13
|
# Regex only for *.tld
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
# %r{https?://((?:\w+[\./]?)+)(?:/|\.)}
|
15
|
+
# (?:\??)[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]+
|
16
|
+
#
|
17
|
+
# %r{(?:https?\://)?(?:www\.)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}}
|
18
|
+
#
|
19
|
+
# ((?:https\:\/\/)|(?:http\:\/\/)|(?:www\.))?([a-zA-Z0-9\-\.]+\.
|
20
|
+
# [a-zA-Z]{2,3}(?:\??)[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]+)
|
21
|
+
#
|
22
|
+
# http://www.regexr.com/3bkne
|
23
|
+
# /([(https?):\/\/(www\.)?a-zA-Z0-9:@%\._\+~#=]{2,256}\.[a-z]{2,6}\b
|
24
|
+
# (?:[-a-zA-Z0-9@:%_\+.~#?&\/\/?=]*))/
|
25
|
+
#
|
26
|
+
# without @
|
27
|
+
def regex(_hint)
|
28
|
+
%r{
|
29
|
+
([(https?)://(www\.)?a-zA-Z0-9:%\._\+~#=]{2,256}
|
30
|
+
\.[a-z]{2,6}\b
|
31
|
+
(?:[-a-zA-Z0-9@:%_\+.~#?&//?=]*))
|
32
|
+
}x
|
21
33
|
end
|
22
34
|
|
23
35
|
def key
|
data/lib/ubi/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -2,13 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Memoria::Address do
|
4
4
|
[
|
5
|
-
'R Bahia,55 - Una/
|
6
|
-
'R Bahia,55 - Una/
|
7
|
-
'R Bahia, 55 - Una/
|
8
|
-
'R Bahia, 55 - Una/
|
9
|
-
'R Bahia, 55 / Una/
|
10
|
-
'R Bahia, 55 \n Una/
|
11
|
-
'R Bahia, 55, Una/
|
5
|
+
'R Bahia,55 - Una/BA - 12345-678',
|
6
|
+
'R Bahia,55 - Una/BA - 12345- 678',
|
7
|
+
'R Bahia, 55 - Una/BA - 12345-678',
|
8
|
+
'R Bahia, 55 - Una/BA - 12345-678',
|
9
|
+
'R Bahia, 55 / Una/BA - 12345-678',
|
10
|
+
'R Bahia, 55 \n Una/BA \n 12345-678',
|
11
|
+
'R Bahia, 55, Una/BA - 12345-678'
|
12
12
|
].each do |chunk|
|
13
13
|
describe "simple delimited `#{chunk}`" do
|
14
14
|
subject { Memoria::Address.parse(chunk) }
|
@@ -22,14 +22,14 @@ describe Memoria::Address do
|
|
22
22
|
|
23
23
|
it { expect(addr.zip.to_s).to eq('12345-678') }
|
24
24
|
it { expect(addr.number.to_s).to eq('55') }
|
25
|
-
it { expect(addr.region.to_s).to eq('
|
25
|
+
it { expect(addr.region.to_s).to eq('BA') }
|
26
26
|
|
27
27
|
it 'should split into parts' do
|
28
|
-
expect(addr.parts).to eq(['R Bahia', '55', 'Una', '
|
28
|
+
expect(addr.parts).to eq(['R Bahia', '55', 'Una', 'BA', '12345-678'])
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should split into words' do
|
32
|
-
expect(addr.words).to eq([%w(R Bahia), ['55'], ['Una'], ['
|
32
|
+
expect(addr.words).to eq([%w(R Bahia), ['55'], ['Una'], ['BA'], ['12345-678']])
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -5,6 +5,28 @@ describe Memoria::Phone do
|
|
5
5
|
subject { Memoria::Phone.new('+551112345678') }
|
6
6
|
|
7
7
|
it { is_expected.to be_a Memoria::Phone }
|
8
|
+
|
9
|
+
it 'should have text reader method' do
|
10
|
+
expect(subject.text).to eq('+551112345678')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should have text reader method' do
|
14
|
+
expect(subject.number).to be_a Phonelib::Phone
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'ill formated simple test' do
|
19
|
+
subject { Memoria::Phone.new('+55(11) 1234-5678') }
|
20
|
+
|
21
|
+
it { is_expected.to be_a Memoria::Phone }
|
22
|
+
|
23
|
+
it 'should have text reader method' do
|
24
|
+
expect(subject.text).to eq('+55(11) 1234-5678')
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should have text reader method' do
|
28
|
+
expect(subject.number).to be_a Phonelib::Phone
|
29
|
+
end
|
8
30
|
end
|
9
31
|
|
10
32
|
describe 'parsed landlines' do
|
@@ -26,7 +48,7 @@ describe Memoria::Phone do
|
|
26
48
|
Memoria::Phone.parse(phone).first.rfc
|
27
49
|
end
|
28
50
|
|
29
|
-
let(:parsed) { '+
|
51
|
+
let(:parsed) { '+55 11 99814-5678' }
|
30
52
|
|
31
53
|
load_fixture('mobile.txt').each_line do |l|
|
32
54
|
it "Should parse phone #{l}" do
|
@@ -40,7 +62,7 @@ describe Memoria::Phone do
|
|
40
62
|
Memoria::Phone.parse(phone).first.rfc
|
41
63
|
end
|
42
64
|
|
43
|
-
let(:parsed) { '+
|
65
|
+
let(:parsed) { '+55 11 98234-5678' }
|
44
66
|
|
45
67
|
it { expect(parse('11982345678')).to eq(parsed) }
|
46
68
|
it { expect(parse('11 982345678')).to eq(parsed) }
|
@@ -2,10 +2,14 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Memoria::Site do
|
4
4
|
describe 'simple test' do
|
5
|
-
subject { Memoria::Site.parse('bla bla
|
5
|
+
subject { Memoria::Site.parse('bla bla somesite.com') }
|
6
6
|
|
7
7
|
it { is_expected.to include(Memoria::Site) }
|
8
8
|
it { is_expected.to be_an Array }
|
9
|
+
|
10
|
+
it 'should have text reader method' do
|
11
|
+
expect(subject[0].text).to eq('somesite.com')
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
describe 'parsed' do
|
@@ -17,8 +21,8 @@ describe Memoria::Site do
|
|
17
21
|
let(:parsed) { 'http://fubah.com' }
|
18
22
|
|
19
23
|
it { expect(parse('fubah.com')).to eq(parsed) }
|
20
|
-
it { expect(parse('@fubah.com')).to eq('http://@fubah.com') }
|
21
|
-
it { expect(parse('fu@fubah.com')).to eq('http://fu@fubah.com') }
|
24
|
+
it { expect(parse('@fubah.com')).to eq(parsed) } # 'http://@fubah.com') }
|
25
|
+
it { expect(parse('fu@fubah.com')).to eq(parsed) } # 'http://fu@fubah.com') }
|
22
26
|
it { expect(parse('http://fubah.com')).to eq(parsed) }
|
23
27
|
it { expect(parse('http://fubah.com/56')).to eq(parsed + '/56') }
|
24
28
|
end
|
data/ubi.gemspec
CHANGED
@@ -22,13 +22,12 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
23
|
s.require_paths = ['lib']
|
24
24
|
|
25
|
-
s.add_dependency 'thor'
|
26
|
-
s.add_dependency 'paint'
|
25
|
+
s.add_dependency 'thor'
|
26
|
+
s.add_dependency 'paint'
|
27
27
|
s.add_dependency 'phonelib'
|
28
|
-
# s.add_dependency '
|
29
|
-
|
30
|
-
s.add_dependency '
|
31
|
-
s.add_dependency 'nokogiri' #, '~> 1.6.0'
|
28
|
+
# s.add_dependency 'addressie', '~> 0.0.0'
|
29
|
+
s.add_dependency 'polipus'
|
30
|
+
s.add_dependency 'nokogiri'
|
32
31
|
s.add_dependency 'geopolitical'
|
33
32
|
|
34
33
|
s.add_development_dependency 'vcr'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ubi
|
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
|
- Marcos Piccinini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -145,6 +145,7 @@ extra_rdoc_files: []
|
|
145
145
|
files:
|
146
146
|
- ".gitignore"
|
147
147
|
- ".rspec"
|
148
|
+
- ".travis.yml"
|
148
149
|
- Gemfile
|
149
150
|
- Guardfile
|
150
151
|
- MIT-LICENSE
|