melissa 0.0.8 → 0.0.9b
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.jruby-version +1 -1
- data/.ruby-version +1 -1
- data/Gemfile.lock +6 -6
- data/lib/melissa/addr_obj.rb +2 -1
- data/lib/melissa/addr_obj_live.rb +29 -27
- data/lib/melissa/geo_point.rb +2 -1
- data/lib/melissa/geo_point_live.rb +31 -29
- data/lib/melissa/version.rb +1 -1
- data/melissa.gemspec +12 -10
- data/test/addr_obj_test.rb +6 -6
- data/test/geo_point_test.rb +4 -4
- data/test/melissa_test.rb +3 -3
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b691b75df37248404fcec6e5361070194f7a4b2
|
4
|
+
data.tar.gz: 2189c5a6e00cf89216f2b37b77747ee0af6571e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a900ac4abc2fd4daabf2df8b7f98b980179ae82afc2647b166fcb6f10edb74d5fba961525454f5fa6cce9d6ab7da625b9e5fae422f9b653dd9ef4043a95757ac
|
7
|
+
data.tar.gz: 923c8c2aba2639775fd703f0ba2a650fb893f2a0e2f67647b98ed7d63d35043861e2ccb733361fadf971950ba68d57510075e788328f6bc3ac7b5823e0c7de7b
|
data/.jruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jruby-1.7.
|
1
|
+
jruby-1.7.23
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
melissa (0.0.
|
5
|
-
activesupport
|
4
|
+
melissa (0.0.9b)
|
5
|
+
activesupport (~> 4.2.1)
|
6
|
+
concurrent-ruby
|
6
7
|
ffi
|
7
8
|
minitest
|
8
|
-
|
9
|
+
sync_attr
|
9
10
|
|
10
11
|
GEM
|
11
12
|
remote: https://rubygems.org/
|
@@ -18,11 +19,10 @@ GEM
|
|
18
19
|
tzinfo (~> 1.1)
|
19
20
|
ansi (1.5.0)
|
20
21
|
builder (3.2.2)
|
22
|
+
concurrent-ruby (1.0.2)
|
21
23
|
ffi (1.9.8)
|
22
|
-
ffi (1.9.8-java)
|
23
24
|
i18n (0.7.0)
|
24
25
|
json (1.8.2)
|
25
|
-
json (1.8.2-java)
|
26
26
|
minitest (5.4.0)
|
27
27
|
minitest-reporters (1.0.8)
|
28
28
|
ansi
|
@@ -33,8 +33,8 @@ GEM
|
|
33
33
|
rake (10.4.2)
|
34
34
|
ruby-progressbar (1.7.1)
|
35
35
|
shoulda-context (1.2.1)
|
36
|
+
sync_attr (2.0.0)
|
36
37
|
thread_safe (0.3.5)
|
37
|
-
thread_safe (0.3.5-java)
|
38
38
|
tzinfo (1.2.2)
|
39
39
|
thread_safe (~> 0.1)
|
40
40
|
|
data/lib/melissa/addr_obj.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_support/all' #TODO I can narrow down this
|
2
|
+
require 'concurrent'
|
2
3
|
|
3
4
|
module Melissa
|
4
5
|
class AddrObj
|
@@ -53,7 +54,7 @@ module Melissa
|
|
53
54
|
@@good_codes = ['AS01', 'AS02', 'AS03']
|
54
55
|
@@bad_codes = ['AC02', 'AC03']
|
55
56
|
|
56
|
-
@@callbacks =
|
57
|
+
@@callbacks = Concurrent::Array.new
|
57
58
|
|
58
59
|
# Allow callbacks to intercept response and perform whatever misc stuff (hint: victim_statements)
|
59
60
|
def self.add_callback(&callback)
|
@@ -1,16 +1,17 @@
|
|
1
1
|
require 'ffi'
|
2
|
+
require 'sync_attr'
|
2
3
|
|
3
4
|
module Melissa
|
4
5
|
class AddrObjLive < AddrObj
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
sync_cattr_reader :lib_loaded do
|
8
|
+
begin
|
9
|
+
extend FFI::Library
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
ffi_lib Melissa.config.addr_obj_lib
|
12
|
+
attr_functions = @@melissa_attributes.map { |name| ["mdAddrGet#{name}".to_sym, [:pointer], :string] }
|
12
13
|
|
13
|
-
|
14
|
+
functions = attr_functions + [
|
14
15
|
# method # parameters # return
|
15
16
|
[:mdAddrCreate, [], :pointer],
|
16
17
|
[:mdAddrSetLicenseString, [:pointer, :string], :int],
|
@@ -31,33 +32,34 @@ module Melissa
|
|
31
32
|
[:mdAddrDestroy, [:pointer], :void],
|
32
33
|
[:mdAddrGetLicenseExpirationDate, [:pointer], :string],
|
33
34
|
[:mdAddrGetExpirationDate, [:pointer], :string],
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
35
|
+
]
|
36
|
+
|
37
|
+
functions.each do |func|
|
38
|
+
begin
|
39
|
+
attach_function(*func)
|
40
|
+
rescue Object => e
|
41
|
+
raise "Could not attach #{func}, #{e.message}"
|
42
|
+
end
|
41
43
|
end
|
42
|
-
end
|
43
44
|
|
44
|
-
|
45
|
+
attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
|
45
46
|
|
46
|
-
|
47
|
-
|
47
|
+
# Get all the attributes out up-front so we can destroy the h_addr_lib object
|
48
|
+
class_eval <<-EOS
|
48
49
|
define_method(:fill_attributes) do |h_addr_lib|
|
49
50
|
#{@@melissa_attributes.map { |name| "@#{name.underscore} = mdAddrGet#{name}(h_addr_lib)" }.join("\n")}
|
50
51
|
end
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
EOS
|
53
|
+
rescue LoadError => e
|
54
|
+
puts "WARNING: #{Melissa.config.addr_obj_lib} could not be loaded"
|
55
|
+
false
|
56
|
+
else
|
57
|
+
true
|
58
|
+
end
|
57
59
|
end
|
58
60
|
|
59
61
|
def self.with_mdaddr
|
60
|
-
raise "Unable to load melissa library #{Melissa.config.addr_obj_lib}" unless
|
62
|
+
raise "Unable to load melissa library #{Melissa.config.addr_obj_lib}" unless lib_loaded
|
61
63
|
raise "Unable to find the license for Melissa Data library #{Melissa.config.license}" unless Melissa.config.license.present?
|
62
64
|
raise "Unable to find data files for Melissa Data library #{Melissa.config.data_path}" unless Melissa.config.data_path.present?
|
63
65
|
begin
|
@@ -84,9 +86,9 @@ module Melissa
|
|
84
86
|
(self.license_expiration_date - Date.today).to_i
|
85
87
|
end
|
86
88
|
|
87
|
-
|
88
|
-
|
89
|
-
|
89
|
+
# U.S. Only — This function returns a date value representing the
|
90
|
+
# date when the current U.S. data files expire. This date enables you to confirm that the
|
91
|
+
# data files you are using are the latest available.
|
90
92
|
|
91
93
|
def self.data_expiration_date
|
92
94
|
Date.strptime(with_mdaddr { |h_addr_lib| mdAddrGetExpirationDate(h_addr_lib) }, '%m-%d-%Y')
|
data/lib/melissa/geo_point.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "melissa/config"
|
2
|
+
require 'concurrent'
|
2
3
|
|
3
4
|
module Melissa
|
4
5
|
class GeoPoint
|
@@ -39,7 +40,7 @@ module Melissa
|
|
39
40
|
#@@bad_codes = ['GE01', 'GE02']
|
40
41
|
@@fatal_codes = ['GE03', 'GE04', 'GE05']
|
41
42
|
|
42
|
-
@@callbacks =
|
43
|
+
@@callbacks = Concurrent::Array.new
|
43
44
|
|
44
45
|
# Allow callbacks to intercept response and perform whatever misc stuff (hint: victim_statements)
|
45
46
|
def self.add_callback(&callback)
|
@@ -1,16 +1,17 @@
|
|
1
1
|
require 'ffi'
|
2
|
+
require 'sync_attr'
|
2
3
|
|
3
4
|
module Melissa
|
4
5
|
class GeoPointLive < GeoPoint
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
sync_cattr_reader :lib_loaded do
|
8
|
+
begin
|
9
|
+
extend FFI::Library
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
ffi_lib Melissa.config.geo_point_lib
|
12
|
+
attr_functions = @@melissa_attributes.map { |name| ["mdGeoGet#{name}".to_sym, [:pointer], :string] }
|
12
13
|
|
13
|
-
|
14
|
+
functions = attr_functions + [
|
14
15
|
# method # parameters # return
|
15
16
|
[:mdGeoCreate, [], :pointer],
|
16
17
|
[:mdGeoSetLicenseString, [:pointer, :string], :int],
|
@@ -22,33 +23,34 @@ module Melissa
|
|
22
23
|
[:mdGeoDestroy, [:pointer], :void],
|
23
24
|
[:mdGeoGetLicenseExpirationDate, [:pointer], :string],
|
24
25
|
[:mdGeoGetExpirationDate, [:pointer], :string],
|
25
|
-
|
26
|
+
]
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
functions.each do |func|
|
29
|
+
begin
|
30
|
+
attach_function(*func)
|
31
|
+
rescue Object => e
|
32
|
+
raise "Could not attach #{func}, #{e.message}"
|
33
|
+
end
|
32
34
|
end
|
33
|
-
end
|
34
35
|
|
35
|
-
|
36
|
+
attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
|
36
37
|
|
37
|
-
|
38
|
-
|
38
|
+
# Get all the attributes out up-front so we can destroy the mdGeo object
|
39
|
+
class_eval <<-EOS
|
39
40
|
define_method(:fill_attributes) do |mdGeo|
|
40
41
|
#{@@melissa_attributes.map { |name| "@#{name.underscore} = mdGeoGet#{name}(mdGeo)" }.join("\n")}
|
41
42
|
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
EOS
|
44
|
+
rescue LoadError => e
|
45
|
+
puts "WARNING: #{Melissa.config.geo_point_lib} could not be loaded"
|
46
|
+
false
|
47
|
+
else
|
48
|
+
true
|
49
|
+
end
|
48
50
|
end
|
49
51
|
|
50
52
|
def self.with_mdgeo
|
51
|
-
raise "Unable to load melissa library #{Melissa.config.addr_obj_lib}" unless
|
53
|
+
raise "Unable to load melissa library #{Melissa.config.addr_obj_lib}" unless lib_loaded
|
52
54
|
raise "Unable to find the license for Melissa Data library #{Melissa.config.license}" unless Melissa.config.license.present?
|
53
55
|
raise "Unable to find data files for Melissa Data library #{Melissa.config.data_path}" unless Melissa.config.data_path.present?
|
54
56
|
begin
|
@@ -58,7 +60,7 @@ module Melissa
|
|
58
60
|
mdGeoSetPathToGeoPointDataFiles(mdGeo, Melissa.config.data_path)
|
59
61
|
result = mdGeoInitializeDataFiles(mdGeo)
|
60
62
|
if result != 0
|
61
|
-
raise
|
63
|
+
raise "Unable to initialize data files for Melissa Data library #{Melissa.config.data_path}"
|
62
64
|
end
|
63
65
|
yield mdGeo
|
64
66
|
ensure
|
@@ -82,7 +84,7 @@ module Melissa
|
|
82
84
|
# date when the current data files expire. This date enables you to confirm that the
|
83
85
|
# data files you are using are the latest available.
|
84
86
|
def self.expiration_date
|
85
|
-
Date.parse(with_mdgeo { |mdGeo| mdGeoGetExpirationDate(mdGeo)})
|
87
|
+
Date.parse(with_mdgeo { |mdGeo| mdGeoGetExpirationDate(mdGeo) })
|
86
88
|
end
|
87
89
|
|
88
90
|
def self.days_until_data_expiration
|
@@ -103,8 +105,8 @@ module Melissa
|
|
103
105
|
raise "Invalid call to GeoPoint, unknown object #{opts.inspect}"
|
104
106
|
end
|
105
107
|
@resultcodes = mdGeoGetResults(mdGeo).split(',')
|
106
|
-
fatals
|
107
|
-
@is_valid
|
108
|
+
fatals = @resultcodes & @@fatal_codes
|
109
|
+
@is_valid = fatals.blank?
|
108
110
|
if @is_valid
|
109
111
|
fill_attributes(mdGeo)
|
110
112
|
# Convert from strings to actual types
|
@@ -119,9 +121,9 @@ module Melissa
|
|
119
121
|
@longitude = @longitude.to_f
|
120
122
|
end
|
121
123
|
if @latitude == 0.0 && @longitude == 0.0
|
122
|
-
@latitude
|
124
|
+
@latitude = nil
|
123
125
|
@longitude = nil
|
124
|
-
@is_valid
|
126
|
+
@is_valid = false
|
125
127
|
end
|
126
128
|
else
|
127
129
|
fatals.each do |fatal_code|
|
data/lib/melissa/version.rb
CHANGED
data/melissa.gemspec
CHANGED
@@ -2,21 +2,23 @@
|
|
2
2
|
require File.expand_path('../lib/melissa/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors
|
6
|
-
gem.email
|
7
|
-
gem.description
|
8
|
-
gem.summary
|
9
|
-
gem.homepage
|
5
|
+
gem.authors = ['Brad Pardee', 'Svetlana Marinskaya']
|
6
|
+
gem.email = ['bradpardee@gmail.com', 'svetlana.marinskaya@gmail.com']
|
7
|
+
gem.description = %q{Configurable interface to Melissa Data Address and GeoPoint objects}
|
8
|
+
gem.summary = %q{Melissa allows you to use ruby wrappers for Melissa Data's AddrObj and GeoPoint objects or use the mock objects depending on configuration.}
|
9
|
+
gem.homepage = "https://github.com/smarinskaya/Melissa"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
12
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
13
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
14
|
gem.name = "melissa"
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = Melissa::VERSION
|
17
17
|
|
18
|
-
|
19
|
-
gem.add_dependency '
|
20
|
-
gem.add_dependency '
|
21
|
-
gem.add_dependency '
|
18
|
+
# Don't want to upgrade to '5.0.0' yet.
|
19
|
+
gem.add_dependency 'activesupport', '~> 4.2.1' # added to support underscore method.
|
20
|
+
gem.add_dependency 'minitest' # added as a dependency of activesupport and for testing.
|
21
|
+
gem.add_dependency 'ffi' # used for converting c libraries to ruby
|
22
|
+
gem.add_dependency 'concurrent-ruby' # added to support concurrent callbacks
|
23
|
+
gem.add_dependency 'sync_attr' # added to safely create lazy loaded class variables
|
22
24
|
end
|
data/test/addr_obj_test.rb
CHANGED
@@ -9,7 +9,7 @@ class AddrObjTest < Minitest::Test
|
|
9
9
|
|
10
10
|
describe 'valid?' do
|
11
11
|
it 'handles valid data' do
|
12
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
12
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
13
13
|
valid_address = Melissa.addr_obj(
|
14
14
|
address: '2517 Surfwood Dr',
|
15
15
|
city: 'Las Vegas',
|
@@ -25,7 +25,7 @@ class AddrObjTest < Minitest::Test
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'flags invalid data' do
|
28
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
28
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
29
29
|
# Zip points to Schenectady, NY
|
30
30
|
invalid_address = Melissa.addr_obj(
|
31
31
|
address: '123 Who Dr',
|
@@ -39,7 +39,7 @@ class AddrObjTest < Minitest::Test
|
|
39
39
|
|
40
40
|
describe 'delivery_point' do
|
41
41
|
it 'sets delivery point for valid data' do
|
42
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
42
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
43
43
|
valid_address = Melissa.addr_obj(
|
44
44
|
address: '2517 Surfwood Dr',
|
45
45
|
city: 'Las Vegas',
|
@@ -52,7 +52,7 @@ class AddrObjTest < Minitest::Test
|
|
52
52
|
|
53
53
|
describe 'address_key' do
|
54
54
|
it 'sets address key for valid data' do
|
55
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
55
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
56
56
|
valid_address = Melissa.addr_obj(
|
57
57
|
address: '9802 Brompton Dr',
|
58
58
|
city: 'Tampa',
|
@@ -65,7 +65,7 @@ class AddrObjTest < Minitest::Test
|
|
65
65
|
|
66
66
|
describe 'number of days till licence expires' do
|
67
67
|
it 'checks if we have more than 30 days till license expiration date' do
|
68
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
68
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
69
69
|
valid_address = Melissa.addr_obj(
|
70
70
|
:address => '2517 Surfwood Dr',
|
71
71
|
:city => 'Las Vegas',
|
@@ -78,7 +78,7 @@ class AddrObjTest < Minitest::Test
|
|
78
78
|
|
79
79
|
describe 'callback' do
|
80
80
|
it 'executes added callback' do
|
81
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
81
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::AddrObjLive.lib_loaded
|
82
82
|
callback_flag = false
|
83
83
|
Melissa::AddrObj.add_callback do
|
84
84
|
callback_flag = true
|
data/test/geo_point_test.rb
CHANGED
@@ -10,7 +10,7 @@ class GeoPointTest < Minitest::Test
|
|
10
10
|
|
11
11
|
describe 'valid?' do
|
12
12
|
it 'creates valid GeoPoint object from valid Address Object' do
|
13
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
13
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
14
14
|
valid_addr_obj = Melissa.addr_obj(
|
15
15
|
address: '2517 SURFWOOD DR',
|
16
16
|
city: 'LAS VEGAS',
|
@@ -25,7 +25,7 @@ class GeoPointTest < Minitest::Test
|
|
25
25
|
assert_equal offset, geo_point_obj.time_zone_offset(valid_addr_obj.state)
|
26
26
|
end
|
27
27
|
it 'creates valid GeoPoint object from the Hash' do
|
28
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
28
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
29
29
|
geo_point_obj= Melissa.geo_point(
|
30
30
|
zip: '89128',
|
31
31
|
plus4: '7182',
|
@@ -42,7 +42,7 @@ class GeoPointTest < Minitest::Test
|
|
42
42
|
|
43
43
|
describe 'number of days till licence expires' do
|
44
44
|
it 'checks if we have more than 30 days till license expiration date' do
|
45
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
45
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
46
46
|
valid_addr_obj = Melissa.addr_obj(
|
47
47
|
address: '2517 SURFWOOD DR',
|
48
48
|
city: 'LAS VEGAS',
|
@@ -56,7 +56,7 @@ class GeoPointTest < Minitest::Test
|
|
56
56
|
|
57
57
|
describe 'callback' do
|
58
58
|
it 'executes added callback' do
|
59
|
-
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
59
|
+
skip 'Not run, Melissa library not loaded' unless Melissa::GeoPointLive.lib_loaded
|
60
60
|
callback_flag = false
|
61
61
|
Melissa::GeoPoint.add_callback do
|
62
62
|
callback_flag = true
|
data/test/melissa_test.rb
CHANGED
@@ -9,7 +9,7 @@ class MelissaTest < Minitest::Test
|
|
9
9
|
|
10
10
|
describe "live mode" do
|
11
11
|
it 'initializes AddrObjLive object' do
|
12
|
-
skip "Not run, Melissa library not loaded" unless Melissa::AddrObjLive.lib_loaded
|
12
|
+
skip "Not run, Melissa library not loaded" unless Melissa::AddrObjLive.lib_loaded
|
13
13
|
valid_address = Melissa.addr_obj(
|
14
14
|
address: '9802 Brompton Dr',
|
15
15
|
city: 'Tampa',
|
@@ -44,8 +44,8 @@ class MelissaTest < Minitest::Test
|
|
44
44
|
|
45
45
|
describe "live mode" do
|
46
46
|
it 'initializes GeoPointLive object' do
|
47
|
-
skip "Not run, Melissa library not loaded" unless Melissa::AddrObjLive.lib_loaded
|
48
|
-
skip "Not run, Melissa library not loaded" unless Melissa::GeoPointLive.lib_loaded
|
47
|
+
skip "Not run, Melissa library not loaded" unless Melissa::AddrObjLive.lib_loaded
|
48
|
+
skip "Not run, Melissa library not loaded" unless Melissa::GeoPointLive.lib_loaded
|
49
49
|
valid_addr_obj = Melissa.addr_obj(
|
50
50
|
address: '9802 Brompton Dr',
|
51
51
|
city: 'Tampa',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: melissa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9b
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Pardee
|
@@ -9,10 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 4.2.1
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 4.2.1
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: minitest
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
17
31
|
requirements:
|
18
32
|
- - ">="
|
@@ -26,7 +40,7 @@ dependencies:
|
|
26
40
|
- !ruby/object:Gem::Version
|
27
41
|
version: '0'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
43
|
+
name: ffi
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
31
45
|
requirements:
|
32
46
|
- - ">="
|
@@ -40,7 +54,7 @@ dependencies:
|
|
40
54
|
- !ruby/object:Gem::Version
|
41
55
|
version: '0'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
57
|
+
name: concurrent-ruby
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
45
59
|
requirements:
|
46
60
|
- - ">="
|
@@ -54,7 +68,7 @@ dependencies:
|
|
54
68
|
- !ruby/object:Gem::Version
|
55
69
|
version: '0'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
71
|
+
name: sync_attr
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
59
73
|
requirements:
|
60
74
|
- - ">="
|
@@ -115,12 +129,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
129
|
version: '0'
|
116
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
131
|
requirements:
|
118
|
-
- - "
|
132
|
+
- - ">"
|
119
133
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
134
|
+
version: 1.3.1
|
121
135
|
requirements: []
|
122
136
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.5.1
|
124
138
|
signing_key:
|
125
139
|
specification_version: 4
|
126
140
|
summary: Melissa allows you to use ruby wrappers for Melissa Data's AddrObj and GeoPoint
|