dynamodb_geo 0.1.4 → 0.2.1

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
  SHA256:
3
- metadata.gz: d340e57a2a4560a39e25bced58d8bbef10427e1d7597cfb855dee033f4592ebe
4
- data.tar.gz: 26125976630f46b293e2903155c242c89f32e1b8aab70f9a545042cbf3cb1438
3
+ metadata.gz: 7fa8f8e9732cb57f22454364dae1d01f8245eaa2006d2c5c27c3bfbcf9533c6a
4
+ data.tar.gz: da4ca3769f2ed2e7372693995ebe0061da6eb2eba6009a39631b5c3f89a95fe9
5
5
  SHA512:
6
- metadata.gz: 0d6c3b08e34a6fe3414d6694694294171fe561e05f11028f426971efef422505474646518bee6f9a767ba66f7b798a886c794c095b3671c1b4853b1b61a3d332
7
- data.tar.gz: 10ef5eb008734bf7dcb536e2d276c28e59a581515637a3ba69746a45fa07f712856d49f694209f222a915ab138328aabaac6dc7414d9dae44310e5ec93965f9a
6
+ metadata.gz: 467828ce5b76c90ad7c2bed7594994fadb5c76e4ee0bc63714ba5878eb4f1779631798cbb610e53fa9a7ba2acd882907559c1c13ed89c7e794d0d14c6aef93f3
7
+ data.tar.gz: d7c5231aefc7bee490e07b85ea97243dbb2fbeb6d60a451ba1f98062bb83708e99644309fc60437e4b00cd589f3f3334effbd0baa97458184d2059b946b31711
@@ -1,5 +1,5 @@
1
1
  module DynamodbGeo
2
2
  class Version
3
- STRING = '0.1.4'
3
+ STRING = '0.2.1'
4
4
  end
5
5
  end
@@ -11,7 +11,7 @@ class DynamodbManager
11
11
 
12
12
  credentials = Aws::SharedCredentials.new(profile_name: profile_name).credentials if access_key_id.nil? && secret_access_key.nil?
13
13
  end
14
- credentials = Aws::Credentials.new(access_key_id, secret_access_key)
14
+ credentials = Aws::Credentials.new(access_key_id, secret_access_key, ENV['AWS_SESSION_TOKEN'])
15
15
 
16
16
  @table_name = table_name
17
17
  @hash_key = 'hashkey'
@@ -56,7 +56,7 @@ class DynamodbManager
56
56
  phone: store.phone,
57
57
  name: store.name,
58
58
  }
59
- put_point(hash, json)
59
+ put_point(hash, json, store.uuid)
60
60
  end
61
61
 
62
62
  def get_stores(lat, long)
@@ -69,7 +69,30 @@ class DynamodbManager
69
69
  neighbours.each do |neighbour|
70
70
  resp = query(neighbour)
71
71
  resp.items.each do |item|
72
- all_stores << Store.new(item['geoJson'])
72
+ latitude = item[@geojson]['latitude']
73
+ longitude = item[@geojson]['longitude']
74
+ address = item[@geojson]['address']
75
+ city = item[@geojson]['city']
76
+ state = item[@geojson]['state']
77
+ zip = item[@geojson]['zip']
78
+ area_code = item[@geojson]['area_code']
79
+ phone = item[@geojson]['phone']
80
+ name = item[@geojson]['name']
81
+ geohash = item[@geohash_key]
82
+ uuid = item[@range_key]
83
+ all_stores << Store.new(
84
+ latitude: latitude,
85
+ longitude: longitude,
86
+ address: address,
87
+ city: city,
88
+ state: state,
89
+ zip: zip,
90
+ area_code: area_code,
91
+ phone: phone,
92
+ name: name,
93
+ geohash: geohash,
94
+ uuid: uuid
95
+ )
73
96
  end
74
97
  break if all_stores.length >= max_item_return
75
98
  end
@@ -97,8 +120,8 @@ class DynamodbManager
97
120
  })
98
121
  end
99
122
 
100
- def put_point(hash, json)
101
- uuid = SecureRandom.uuid
123
+ def put_point(hash, json, uuid = nil)
124
+ uuid ||= SecureRandom.uuid
102
125
 
103
126
  @client.put_item({
104
127
  table_name: @table_name,
@@ -1,5 +1,5 @@
1
1
  class Store
2
- attr_accessor :lat, :long, :address, :city, :state, :zip, :area_code, :phone, :name, :geohash
2
+ attr_accessor :lat, :long, :address, :city, :state, :zip, :area_code, :phone, :name, :geohash, :uuid
3
3
  def initialize(store_data)
4
4
  @lat = store_data[:latitude]
5
5
  @long = store_data[:longitude]
@@ -11,5 +11,15 @@ class Store
11
11
  @phone = store_data[:phone]
12
12
  @name = store_data[:name]
13
13
  @geohash = store_data[:geohash] || Geohash.encode(lat, long, 10)
14
+ @uuid = store_data[:uuid]
15
+ end
16
+
17
+ def to_h
18
+ temp = instance_variables.map do |v|
19
+ value = self.send(v.to_s.sub('@',''))
20
+ value = value.class == BigDecimal ? value.to_f : value
21
+ Hash[v.to_s.sub('@','').to_sym, value]
22
+ end
23
+ Hash[*temp.collect{|h| h.to_a}.flatten]
14
24
  end
15
25
  end
@@ -11,7 +11,7 @@ describe DynamodbGeo do
11
11
  )
12
12
  expect(dynamo).to be_a DynamodbManager
13
13
 
14
- debugger;1
14
+ dynamo.get_stores(37.746825, -122.413637)
15
15
  puts 'foo'
16
16
  end
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamodb_geo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Ahn
@@ -14,44 +14,44 @@ dependencies:
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '3.9'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '3.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '11.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '11.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake-compiler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-sdk-dynamodb
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -104,7 +104,7 @@ files:
104
104
  - spec/dynamodb_geo_spec.rb
105
105
  - spec/geohash_spec.rb
106
106
  - spec/spec_helper.rb
107
- homepage:
107
+ homepage: https://github.com/JA-Soonahn/dynamodb_geo
108
108
  licenses:
109
109
  - Beerware
110
110
  metadata:
@@ -127,7 +127,7 @@ requirements: []
127
127
  rubygems_version: 3.1.2
128
128
  signing_key:
129
129
  specification_version: 4
130
- summary: dynamodb_geo-0.1.4
130
+ summary: dynamodb_geo-0.2.1
131
131
  test_files:
132
132
  - spec/dynamodb_geo_spec.rb
133
133
  - spec/geohash_spec.rb