ubi 0.0.3 → 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/.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
|
+
[![Gem Version](https://badge.fury.io/rb/ubi.svg)](http://badge.fury.io/rb/ubi)
|
10
|
+
[![Code Climate](https://codeclimate.com/github/nofxx/ubi.svg)](https://codeclimate.com/github/nofxx/ubi)
|
11
|
+
[![Coverage Status](https://coveralls.io/repos/nofxx/ubi/badge.svg?branch=master)](https://coveralls.io/r/nofxx/ubi?branch=master)
|
12
|
+
[![Dependency Status](https://gemnasium.com/nofxx/ubi.svg)](https://gemnasium.com/nofxx/ubi)
|
13
|
+
[![Build Status](https://travis-ci.org/nofxx/ubi.svg?branch=master)](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
|