melissa 0.0.8 → 0.0.9b

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 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