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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59236d88782fb94987e5148e7be63d62ae1485f6
4
- data.tar.gz: 5b903e0f90337b7c81393052f35ff795846797a8
3
+ metadata.gz: 4b691b75df37248404fcec6e5361070194f7a4b2
4
+ data.tar.gz: 2189c5a6e00cf89216f2b37b77747ee0af6571e3
5
5
  SHA512:
6
- metadata.gz: d885a6be9192ece24fbfa12df7163530a7df86c8531394e21ca5d8c4c74f56e5b38b8682817e659c3fda716b62109be58cf19c148f4a44faad28e62336c6486b
7
- data.tar.gz: 568d35113295907fb0decb371f06881e04c39d9daac1c5a46a4474107cfda68bb2ce7912b6281b6c57ae689fb17a935f3d6621086c401f6b32173ee7f2a092d1
6
+ metadata.gz: a900ac4abc2fd4daabf2df8b7f98b980179ae82afc2647b166fcb6f10edb74d5fba961525454f5fa6cce9d6ab7da625b9e5fae422f9b653dd9ef4043a95757ac
7
+ data.tar.gz: 923c8c2aba2639775fd703f0ba2a650fb893f2a0e2f67647b98ed7d63d35043861e2ccb733361fadf971950ba68d57510075e788328f6bc3ac7b5823e0c7de7b
data/.jruby-version CHANGED
@@ -1 +1 @@
1
- jruby-1.7.19
1
+ jruby-1.7.23
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.1
1
+ 2.3
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- melissa (0.0.8)
5
- activesupport
4
+ melissa (0.0.9b)
5
+ activesupport (~> 4.2.1)
6
+ concurrent-ruby
6
7
  ffi
7
8
  minitest
8
- thread_safe
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
 
@@ -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 = ThreadSafe::Array.new
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
- def self.lib_loaded?
7
- return @lib_loaded if defined?(@lib_loaded)
8
- extend FFI::Library
7
+ sync_cattr_reader :lib_loaded do
8
+ begin
9
+ extend FFI::Library
9
10
 
10
- ffi_lib Melissa.config.addr_obj_lib
11
- attr_functions = @@melissa_attributes.map { |name| ["mdAddrGet#{name}".to_sym, [:pointer], :string] }
11
+ ffi_lib Melissa.config.addr_obj_lib
12
+ attr_functions = @@melissa_attributes.map { |name| ["mdAddrGet#{name}".to_sym, [:pointer], :string] }
12
13
 
13
- functions = attr_functions + [
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
- functions.each do |func|
37
- begin
38
- attach_function(*func)
39
- rescue Object => e
40
- raise "Could not attach #{func}, #{e.message}"
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
- attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
45
+ attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
45
46
 
46
- # Get all the attributes out up-front so we can destroy the h_addr_lib object
47
- class_eval <<-EOS
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
- EOS
52
- rescue LoadError => e
53
- puts "WARNING: #{Melissa.config.addr_obj_lib} could not be loaded"
54
- return @lib_loaded = false
55
- else
56
- return @lib_loaded = true
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 self.lib_loaded?
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
- # U.S. Only — This function returns a date value representing the
88
- # date when the current U.S. data files expire. This date enables you to confirm that the
89
- # data files you are using are the latest available.
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')
@@ -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 = ThreadSafe::Array.new
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
- def self.lib_loaded?
7
- return @lib_loaded if defined?(@lib_loaded)
8
- extend FFI::Library
7
+ sync_cattr_reader :lib_loaded do
8
+ begin
9
+ extend FFI::Library
9
10
 
10
- ffi_lib Melissa.config.geo_point_lib
11
- attr_functions = @@melissa_attributes.map { |name| ["mdGeoGet#{name}".to_sym, [:pointer], :string] }
11
+ ffi_lib Melissa.config.geo_point_lib
12
+ attr_functions = @@melissa_attributes.map { |name| ["mdGeoGet#{name}".to_sym, [:pointer], :string] }
12
13
 
13
- functions = attr_functions + [
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
- functions.each do |func|
28
- begin
29
- attach_function(*func)
30
- rescue Object => e
31
- raise "Could not attach #{func}, #{e.message}"
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
- attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
36
+ attr_reader *@@melissa_attributes.map { |name| name.underscore.to_sym }
36
37
 
37
- # Get all the attributes out up-front so we can destroy the mdGeo object
38
- class_eval <<-EOS
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
- EOS
43
- rescue LoadError => e
44
- puts "WARNING: #{Melissa.config.geo_point_lib} could not be loaded"
45
- return @lib_loaded = false
46
- else
47
- return @lib_loaded = true
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 self.lib_loaded?
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 mdGeoGetInitializeErrorString(mdGeo)
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 = @resultcodes & @@fatal_codes
107
- @is_valid = fatals.blank?
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 = nil
124
+ @latitude = nil
123
125
  @longitude = nil
124
- @is_valid = false
126
+ @is_valid = false
125
127
  end
126
128
  else
127
129
  fatals.each do |fatal_code|
@@ -1,3 +1,3 @@
1
1
  module Melissa
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9b"
3
3
  end
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 = ['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"
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
- gem.add_dependency 'activesupport' # added to support underscore method.
19
- gem.add_dependency 'minitest' # added as a dependency of activesupport and for testing.
20
- gem.add_dependency 'ffi' #used for converting c libraries to ruby
21
- gem.add_dependency 'thread_safe' # added to support callbacks
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
@@ -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
@@ -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.8
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-01-20 00:00:00.000000000 Z
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: minitest
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: ffi
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: thread_safe
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: '0'
134
+ version: 1.3.1
121
135
  requirements: []
122
136
  rubyforge_project:
123
- rubygems_version: 2.4.6
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