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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 330dfff07aab154b3fc714a71b10cf0f148d541d
4
- data.tar.gz: 81ff08e9a049671a6f2c51c43641007466fa30c3
3
+ metadata.gz: 9a9073e8291c6e092b1f3585191aa4c2c91e524d
4
+ data.tar.gz: ceee4c37c817147c7f4a8f0d4627b3c5108ccbf5
5
5
  SHA512:
6
- metadata.gz: fae80b06b1e6f5bac23357f8b4c09ef45879ba62b4e1e6e90c9e42a16490f7496cc614b27538beaed7d6529d8784fce29a79722e4a351379079cc0e4be6bf1cb
7
- data.tar.gz: 4a4ec085b39e27a0e64addcf9c22fff3a969bdff21a72c8684bcb500451d3c4503eb1935383fd96715dd72257082f4851476b9b2c8d4a26244b6363b9264588b
6
+ metadata.gz: 796e569c777e65d7a8aca7ceb5cb9579fc5f52bfdef22a16cb8b54ec2b48854e0ee207c66d90e2c6bead5fa5622ae328760cf8bad111859059695002871ad6c3
7
+ data.tar.gz: 7791238d12cf001ed5e2d36d86645e42debe21f3a968ed9cc3c21e18636dcba4c1c44ce7714e526f78330827cb812826c3d261f4542a17729799452b75aa996e
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ env: CI="travis"
3
+ rvm:
4
+ - 2.2
5
+ - rbx-2
6
+ - jruby-head
7
+ - ruby-head
8
+
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: jruby-head
12
+
13
+ sudo: false
data/Gemfile CHANGED
@@ -9,3 +9,5 @@ gem 'rubocop'
9
9
  gem 'guard'
10
10
  gem 'guard-rspec'
11
11
  gem 'guard-rubocop'
12
+
13
+ gem 'coveralls', require: false
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') { 'spec' }
15
- watch('spec/spec_helper.rb') { 'spec' }
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
- - Address
35
+ - Addresses
28
36
  - Logo/Images
29
37
 
30
38
 
data/Rakefile CHANGED
@@ -6,4 +6,4 @@ require 'rubocop/rake_task'
6
6
  RSpec::Core::RakeTask.new
7
7
  RuboCop::RakeTask.new
8
8
 
9
- task default: [:spec, :rubocop]
9
+ task default: [:rubocop, :spec]
data/lib/ubi/consultor.rb CHANGED
@@ -38,8 +38,8 @@ module Ubi
38
38
 
39
39
  class << self
40
40
  def inherited(base)
41
- puts "Using aranea #{base}"
42
41
  Ubi.araneas << base
42
+ # puts "Using aranea #{base}"
43
43
  end
44
44
 
45
45
  #
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 :value
6
+ attr_accessor :text, :hint, :opts
7
7
 
8
- def initialize(value, aranea = nil, thema = nil)
9
- @value = value
10
- @aranea = aranea
11
- @thema = thema
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
- value.downcase
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
- def parse(datum)
42
- fail "Not implemented by #{self}" unless regex
43
- extract_text(datum).scan(regex).map { |r| new(r.first) }
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
- # Human-readable name of the aranea
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 the aranea
73
+ # Human-readable name of this class
56
74
  #
57
75
  def name
58
76
  to_s.split('::').last
@@ -1,15 +1,24 @@
1
1
  module Ubi
2
2
  module Memoria
3
- # An adress in this world
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 pça praça pc pca praca tv travessa est estrada rod rodovia ),
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 initialize(val, _location = :br)
27
- @value = Address.sanitize(val)
28
- # @zip = value.match(REGEXES[location][:zip])
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
- value.sub(*self.class.formats[location])
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(value)
49
- value.gsub(/\s+/, ' ').gsub(/\\n/, '-')
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 regex
62
- /((?:#{REGEXES[:br][:prefix].join('|')}).*)/i
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
- # Init, remove non word chars
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
- value.sub(*self.class.formats[location])
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}[-]?\d{2})/,
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
  }
@@ -10,8 +10,13 @@ module Ubi
10
10
  #
11
11
  # Email regex
12
12
  #
13
- def regex
14
- %r{([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)} # rubocop:disable Metrics/LineLength
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
@@ -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, :chunk
5
+ attr_reader :number
6
6
 
7
- def initialize(chunk, hint = nil)
8
- @hint = hint
9
- @chunk = chunk
10
- parse_number
7
+ def parser
8
+ @number = Phonelib.parse(text.gsub(/\D/, ''), hint)
11
9
  end
12
10
 
13
- def parse_number
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
- /(?:^|\s)((?:\+\(?\d{1,3}\W)?[\._\-\/\s]*\(?\s*?\d{2,3}\s*?\)?[\._\-\/\s]*\d{3,5}[\._\-\/\s]*\d{4,5})(?:\s|$)/
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
@@ -5,19 +5,31 @@ module Ubi
5
5
  #
6
6
  # Prefix http:// if there isn't one defined
7
7
  def format
8
- value =~ /http/ ? value : "http://#{value}"
8
+ text =~ /^http/ ? text : "http://#{text}"
9
9
  end
10
10
 
11
11
  class << self
12
12
  #
13
13
  # Regex only for *.tld
14
- def regex
15
- # %r{https?://((?:\w+[\./]?)+)(?:/|\.)}
16
- # (?:\??)[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]+
17
- # %r{(?:https?\://)?(?:www\.)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}}
18
- # ((?:https\:\/\/)|(?:http\:\/\/)|(?:www\.))?([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(?:\??)[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]+)
19
- # http://www.regexr.com/3bkne
20
- /([(https?):\/\/(www\.)?a-zA-Z0-9@:%\._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/\/?=]*))/
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
@@ -1,4 +1,4 @@
1
1
  # :nodoc:
2
2
  module Ubi
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.5'
4
4
  end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,8 @@ require 'paint'
3
3
  require 'pry'
4
4
  require 'vcr'
5
5
  require 'webmock/rspec'
6
+ require 'coveralls'
7
+ Coveralls.wear!
6
8
 
7
9
  $LOAD_PATH.unshift(File.dirname(__FILE__))
8
10
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  describe Memoria::Address do
4
4
  [
5
- 'R Bahia,55 - Una/BR - 12345-678',
6
- 'R Bahia,55 - Una/BR - 12345- 678',
7
- 'R Bahia, 55 - Una/BR - 12345-678',
8
- 'R Bahia, 55 - Una/BR - 12345-678',
9
- 'R Bahia, 55 / Una/BR - 12345-678',
10
- 'R Bahia, 55 \n Una/BR \n 12345-678',
11
- 'R Bahia, 55, Una/BR - 12345-678'
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('BR') }
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', 'BR', '12345-678'])
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'], ['BR'], ['12345-678']])
32
+ expect(addr.words).to eq([%w(R Bahia), ['55'], ['Una'], ['BA'], ['12345-678']])
33
33
  end
34
34
  end
35
35
  end
@@ -6,6 +6,10 @@ describe Memoria::Email do
6
6
 
7
7
  it { is_expected.to include(Memoria::Email) }
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('me@somesite.com')
12
+ end
9
13
  end
10
14
 
11
15
  describe 'valid' do
@@ -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) { '+11998145678' }
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) { '+11982345678' }
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 me@somesite.com') }
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' #, '~> 0.19.1'
26
- s.add_dependency 'paint' #, '~> 0.9.0'
25
+ s.add_dependency 'thor'
26
+ s.add_dependency 'paint'
27
27
  s.add_dependency 'phonelib'
28
- # s.add_dependency 'phonie', '~> 3.1.0'
29
- # s.add_dependency 'addressie', '~> 0.0.0'
30
- s.add_dependency 'polipus' #, '~> 0.4.0'
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.3
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-21 00:00:00.000000000 Z
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