naver-sdk 0.3.0 → 0.4.0

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: 3c55ce738ad94ea471c6009f367ceeb3c218fa7f
4
- data.tar.gz: 37cac2f7a5327a355f5780a6db95876407e9b552
3
+ metadata.gz: 169e8f3de0474b1aafd74629d97c606f721bf728
4
+ data.tar.gz: f4d679fdf11f3287b42c3917fac0ae6c37f11127
5
5
  SHA512:
6
- metadata.gz: 7a84999ca63d2a7ee8c375fab770244789ae958d8738ff0ad1dd14d2af1f30b30b4d05af58e1fd4f7852f43d07da6344a3858757fc7fe301f256d415bea0f606
7
- data.tar.gz: 3f428fc4872cc930f564fb878ca26ffb3a1cdb41638d2bab07c3461b62752b93a5206af6459bc40ec5b2653184951c334ead3b4a757bd7eb9568cb0e0e2e4d96
6
+ metadata.gz: 29b617d3bf7793a577969d2d025741c0a115cddc42a0b36041eb616d9f8bf73bda3feb685c87a655381fc2f56be99da314118e18552e3019a22e057179bfd98f
7
+ data.tar.gz: 57a587e7e8851029f32066856cd54c2f3d3fea3ad52409e15d2e6542fe77c05a82eff12b051200fa5c38578ff1646ce61e4eaf0d45c1dbeba9eb5001355a97f3
@@ -4,9 +4,14 @@ All notable changes to this project will be documented in this file.
4
4
  ## [unreleased]
5
5
  - No significant changes.
6
6
 
7
+ ## [0.4.0] - 2017-06-26
8
+ - [breaking] JSON 출력 결과를 CamelCase 에서 underscore 변경
9
+ - [breaking] Naver::Papago.romanization 리턴값의 key 변경. s_first_name -> first_name,
10
+ a_items -> items
11
+
7
12
  ## [0.3.0] - 2017-06-26
8
13
  - [new] 얼굴인식(Beta)
9
- - [breaking] `Naver::Clova::tts` renamed to `Naver::Voice::tts`.
14
+ - [breaking] `Naver::Clova::tts` renamed to `Naver::Voice.tts`.
10
15
  - [breaking] `Naver::Shortenurl::url` renamed to `Naver::Shorturl::shorten`.
11
16
 
12
17
  ## [0.2.0] - 2017-06-25
@@ -22,4 +27,5 @@ All notable changes to this project will be documented in this file.
22
27
  [0.1.0]: https://github.com/kimsuelim/naver-sdk-ruby/releases/tag/v0.1.0
23
28
  [0.2.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.1.0...v0.2.0
24
29
  [0.3.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.2.0...v0.3.0
25
- [unreleased]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.3.0...HEAD
30
+ [0.4.0]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.3.0...v0.4.0
31
+ [unreleased]: https://github.com/kimsuelim/naver-sdk-ruby/compare/v0.4.0...HEAD
data/README.md CHANGED
@@ -57,7 +57,7 @@ response = Naver::Vision.celebrity(image: "test/resources/park.png")
57
57
  # => #<Naver::ObjectifiedHash:70286633240760 {hash: {
58
58
  "info"=>{
59
59
  "size"=>{"width"=>683, "height"=>377},
60
- "faceCount"=>1
60
+ "face_count"=>1
61
61
  },
62
62
  "faces"=>[
63
63
  {"celebrity"=>{"value"=>"박성웅", "confidence"=>1.0}}
@@ -74,16 +74,16 @@ puts response.faces[0].celebrity.value
74
74
  ```
75
75
  response = Naver::Vision.face(image: "test/resources/park.png")
76
76
  # => #<Naver::ObjectifiedHash:70286633075440 {hash: {
77
- "info"=>{"size"=>{"width"=>683, "height"=>377}, "faceCount"=>1},
77
+ "info"=>{"size"=>{"width"=>683, "height"=>377}, "face_count"=>1},
78
78
  "faces"=>[
79
79
  {
80
80
  "roi"=>{"x"=>214, "y"=>106, "width"=>117, "height"=>117},
81
81
  "landmark"=>{
82
- "leftEye"=>{"x"=>241, "y"=>137},
83
- "rightEye"=>{"x"=>296, "y"=>126},
82
+ "left_eye"=>{"x"=>241, "y"=>137},
83
+ "right_eye"=>{"x"=>296, "y"=>126},
84
84
  "nose"=>{"x"=>271, "y"=>166},
85
- "leftMouth"=>{"x"=>250, "y"=>195},
86
- "rightMouth"=>{"x"=>309, "y"=>185}
85
+ "left_mouth"=>{"x"=>250, "y"=>195},
86
+ "right_mouth"=>{"x"=>309, "y"=>185}
87
87
  },
88
88
  "gender"=>{"value"=>"male", "confidence"=>0.999884},
89
89
  "age"=>{"value"=>"44~48", "confidence"=>0.79507},
@@ -126,8 +126,8 @@ file = File.open("tts.mp3", "wb") { |f| f.write(response) }
126
126
  ```ruby
127
127
  response = Naver::Papago.romanization(query: "김수림")
128
128
  => #<Naver::ObjectifiedHash:70284972145960 {hash: {
129
- "sFirstName"=>"김",
130
- "aItems"=>[
129
+ "first_name"=>"김",
130
+ "items"=>[
131
131
  {"name"=>"Kim Soorim", "score"=>"99"},
132
132
  {"name"=>"Kim Soolim", "score"=>"97"},
133
133
  {"name"=>"Kim Surim", "score"=>"78"},
@@ -135,7 +135,7 @@ response = Naver::Papago.romanization(query: "김수림")
135
135
  ]}
136
136
  }
137
137
 
138
- puts response.aItems[0].name
138
+ puts response.items[0].name
139
139
  # => "Kim Soorim"
140
140
  ```
141
141
 
@@ -148,11 +148,11 @@ response = Naver::Papago.translate(
148
148
  text: "기술이 인간을 대체하는 것이 아니라 인간은 기술의 도움으로 더욱 창조적으로 될 것이라는 믿는다."
149
149
  )
150
150
  # => #<Naver::ObjectifiedHash:70362563050680 {hash: {
151
- "translatedText"=>"To replace the technology not believe that humans are more creatively with the help of technology."
151
+ "translated_text"=>"To replace the technology not believe that humans are more creatively with the help of technology."
152
152
  }
153
153
  }
154
154
 
155
- puts response.translatedText
155
+ puts response.translated_text
156
156
  # => "To replace the technology not believe that humans are more creatively with the help of technology."
157
157
  ```
158
158
 
@@ -162,10 +162,11 @@ puts response.translatedText
162
162
 
163
163
  ```ruby
164
164
  response = Naver::Map.geocode(query: "불정로 6")
165
+ # => <Naver::ObjectifiedHash:70145842773600 {hash: {:total=>1, :userquery=>"불정로 6", :items=>[{:address=>"경기도 성남시 분당구 불정로 6 NAVER그린팩토리", :addrdetail=>{:country=>"대한민국", :sido=>"경기도", :sigugun=>"성남시 분당구", :dongmyun=>"불정로", :rest=>" 6 NAVER그린팩토리"}, :is_road_address=>true, :point=>{:x=>127.1052133, :y=>37.3595316}}]}}
165
166
  # => [#<Naver::ObjectifiedHash:70284981985920 {hash: {
166
167
  "address"=>"경기도 성남시 분당구 불정로 6 NAVER그린팩토리",
167
168
  "addrdetail"=>{"country"=>"대한민국", "sido"=>"경기도", "sigugun"=>"성남시 분당구", "dongmyun"=>"불정로", "rest"=>" 6 NAVER그린팩토리"},
168
- "isRoadAddress"=>true,
169
+ "is_road_address"=>true,
169
170
  "point"=>{"x"=>127.1052133, "y"=>37.3595316}}}
170
171
  ]
171
172
 
@@ -183,8 +184,8 @@ response = Naver::Map.reverse_geocode(lat: "127.1141382", lng: "37.3599968")
183
184
  # => [#<Naver::ObjectifiedHash:70284981856220 {hash: {
184
185
  "address"=>"경기도 성남시 분당구 정자동 257-1",
185
186
  "addrdetail"=>{"country"=>"대한민국", "sido"=>"경기도", "sigugun"=>"성남시 분당구", "dongmyun"=>"정자동", "rest"=>"257-1"},
186
- "isAdmAddress"=>false,
187
- "isRoadAddress"=>false,
187
+ "is_adm_address"=>false,
188
+ "is_road_address"=>false,
188
189
  "point"=>{"x"=>127.1164925, "y"=>37.3597611}}
189
190
  },
190
191
  ...
@@ -205,7 +206,7 @@ response = Naver::Shorturl.shorten(url: "https://github.com/kimsuelim")
205
206
  # => #<Naver::ObjectifiedHash:70284972276780 {hash: {
206
207
  "hash"=>"Fr4K6WFj",
207
208
  "url"=>"http://me2.do/Fr4K6WFj",
208
- "orgUrl"=>"https://github.com/kimsuelim"}
209
+ "org_url"=>"https://github.com/kimsuelim"}
209
210
  }
210
211
 
211
212
  puts response.url
@@ -226,7 +227,7 @@ Naver::Share.url(url: "https://github.com/kimsuelim", title: "The unofficial NAV
226
227
  ```ruby
227
228
  search_results = Naver::Search.blog(query: "블로그")
228
229
  # => <Naver::ObjectifiedHash:70284981057980 {hash: {
229
- "lastBuildDate"=>"Sat, 24 Jun 2017 19:11:02 +0900", "total"=>26223046, "start"=>1, "display"=>10,
230
+ "last_build_date"=>"Sat, 24 Jun 2017 19:11:02 +0900", "total"=>26223046, "start"=>1, "display"=>10,
230
231
  "items"=>[
231
232
  {
232
233
  "title"=>"<b>블로그</b>마케팅교육 어떻게 시작해야 할까요?",
@@ -251,14 +252,14 @@ puts search_results.items[0].bloggername
251
252
  ```ruby
252
253
  search_results = Naver::Search.news(query: "뉴스")
253
254
  # => #<Naver::ObjectifiedHash:70284981108020 {hash: {
254
- "lastBuildDate"=>"Sat, 24 Jun 2017 19:17:32 +0900", "total"=>31804178, "start"=>1, "display"=>10,
255
+ "last_build_date"=>"Sat, 24 Jun 2017 19:17:32 +0900", "total"=>31804178, "start"=>1, "display"=>10,
255
256
  "items"=>[
256
257
  {
257
258
  "title"=>"'믿듣맘무' 마마무, 걸그룹 음원차트 평정… 멜론 누적 이용자수 94만명 돌파",
258
259
  "originallink"=>"http://enews24.tving.com/news/article.asp?nsID=1221358",
259
260
  "link"=>"http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=106&oid=404&aid=0000180862",
260
261
  "description"=>"녹아져 있는, 밉지 않은 귀여운 허세가 인상적인 큐티 허세송이다. 한편 마마무는 24일 MBC '쇼! 음악중심' 무대에 오른다. 사진 = RBW 제공 이지영 기자 [Copyright ⓒ Asia No.1 연예<b>뉴스</b> enews24.net 무단전재 및 재배포 금지]",
261
- "pubDate"=>"Sat, 24 Jun 2017 19:15:00 +0900"
262
+ "pub_date"=>"Sat, 24 Jun 2017 19:15:00 +0900"
262
263
  },
263
264
  ...
264
265
  ]
@@ -272,7 +273,7 @@ puts search_results.items[0].title
272
273
  ```ruby
273
274
  search_results = Naver::Search.book(query: "책")
274
275
  # => #<Naver::ObjectifiedHash:70284982544600 {hash: {
275
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:08:46 +0900", "total"=>555896, "start"=>1, "display"=>10,
276
+ "last_build_date"=>"Sat, 24 Jun 2017 20:08:46 +0900", "total"=>555896, "start"=>1, "display"=>10,
276
277
  "items"=>[
277
278
  {
278
279
  "title"=>"너의 이름은",
@@ -309,7 +310,7 @@ puts response.adult
309
310
  ```ruby
310
311
  search_results = Naver::Search.encyc(query: "백과 사전")
311
312
  # => #<Naver::ObjectifiedHash:70284982397080 {hash: {
312
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:12:58 +0900", "total"=>4332, "start"=>1, "display"=>10,
313
+ "last_build_date"=>"Sat, 24 Jun 2017 20:12:58 +0900", "total"=>4332, "start"=>1, "display"=>10,
313
314
  "items"=>[
314
315
  {
315
316
  "title"=>"<b>백과사전</b>",
@@ -329,17 +330,17 @@ puts search_results.items[0].title
329
330
  ```ruby
330
331
  search_results = Naver::Search.movie(query: "킬빌")
331
332
  # => #<Naver::ObjectifiedHash:70284982296880 {hash: {
332
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:15:41 +0900", "total"=>3, "start"=>1, "display"=>3,
333
+ "last_build_date"=>"Sat, 24 Jun 2017 20:15:41 +0900", "total"=>3, "start"=>1, "display"=>3,
333
334
  "items"=>[
334
335
  {
335
336
  "title"=>"<b>킬 빌</b> - 2부",
336
337
  "link"=>"http://movie.naver.com/movie/bi/mi/basic.nhn?code=37493",
337
338
  "image"=>"http://imgmovie.naver.com/mdi/mit110/0374/C7493-00.jpg",
338
339
  "subtitle"=>"Kill Bill: Vol. 2",
339
- "pubDate"=>"2004",
340
+ "pub_date"=>"2004",
340
341
  "director"=>"쿠엔틴 타란티노|",
341
342
  "actor"=>"우마 서먼|데이빗 캐러딘|",
342
- "userRating"=>"7.48"
343
+ "user_rating"=>"7.48"
343
344
  },
344
345
  ...
345
346
  ]
@@ -353,7 +354,7 @@ puts search_results.items[0].title
353
354
  ```ruby
354
355
  search_results = Naver::Search.cafearticle(query: "카페글")
355
356
  # => #<Naver::ObjectifiedHash:70284982183260 {hash: {
356
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:17:56 +0900", "total"=>216425, "start"=>1, "display"=>10,
357
+ "last_build_date"=>"Sat, 24 Jun 2017 20:17:56 +0900", "total"=>216425, "start"=>1, "display"=>10,
357
358
  "items"=>[
358
359
  {
359
360
  "title"=>"예전 <b>카페글</b> 복습하기",
@@ -374,7 +375,7 @@ puts search_results.items[0].title
374
375
  ```ruby
375
376
  search_results = Naver::Search.kin(query: "지식인")
376
377
  # => #<Naver::ObjectifiedHash:70284982086840 {hash: {
377
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:20:19 +0900", "total"=>6931274, "start"=>1, "display"=>10,
378
+ "last_build_date"=>"Sat, 24 Jun 2017 20:20:19 +0900", "total"=>6931274, "start"=>1, "display"=>10,
378
379
  "items"=>[
379
380
  {
380
381
  "title"=>"<b>지식인</b> 디렉토리 변경",
@@ -393,7 +394,7 @@ puts search_results.items[0].title
393
394
  ```ruby
394
395
  search_results = Naver::Search.local(query: "제주도")
395
396
  # => #<Naver::ObjectifiedHash:70284981059020 {hash: {
396
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:51:22 +0900", "total"=>75791, "start"=>1, "display"=>10,
397
+ "last_build_date"=>"Sat, 24 Jun 2017 20:51:22 +0900", "total"=>75791, "start"=>1, "display"=>10,
397
398
  "items"=>[
398
399
  {
399
400
  "title"=>"제주특별자치도청",
@@ -402,7 +403,7 @@ search_results = Naver::Search.local(query: "제주도")
402
403
  "description"=>"제주 뉴스, 생활민원, 여권발급, 문화, <b>제주도</b> 관광, 산업경제, 복지, 여성 정보 수록.",
403
404
  "telephone"=>"",
404
405
  "address"=>"제주특별자치도 제주시 연동 312-1 ",
405
- "roadAddress"=>"제주특별자치도 제주시 문연로 6 ",
406
+ "road_address"=>"제주특별자치도 제주시 문연로 6 ",
406
407
  "mapx"=>"260641",
407
408
  "mapy"=>"100237"
408
409
  },
@@ -429,7 +430,7 @@ puts response.errata
429
430
  ```ruby
430
431
  search_results = Naver::Search.webkr(query: "웹문서")
431
432
  # => #<Naver::ObjectifiedHash:70284981547180 {hash: {
432
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:53:29 +0900", "total"=>1904994, "start"=>1, "display"=>10,
433
+ "last_build_date"=>"Sat, 24 Jun 2017 20:53:29 +0900", "total"=>1904994, "start"=>1, "display"=>10,
433
434
  "items"=>[
434
435
  {
435
436
  "title"=>"카카오톡 <b>웹문서</b> 수집 인정 &quot;다음 검색 연동 중단&quot; - 오마이뉴스",
@@ -448,7 +449,7 @@ puts search_results.items[0].title
448
449
  ```ruby
449
450
  search_results = Naver::Search.image(query: "이미지")
450
451
  # => #<Naver::ObjectifiedHash:70284981346800 {hash: {
451
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:54:58 +0900", "total"=>1627087, "start"=>1, "display"=>10,
452
+ "last_build_date"=>"Sat, 24 Jun 2017 20:54:58 +0900", "total"=>1627087, "start"=>1, "display"=>10,
452
453
  "items"=>[
453
454
  {
454
455
  "title"=>"볼매뿌뿌's StyleShare",
@@ -469,7 +470,7 @@ puts search_results.items[0].title
469
470
  ```ruby
470
471
  search_results = Naver::Search.shop(query: "쇼핑")
471
472
  # => #<Naver::ObjectifiedHash:70284981152140 {hash: {
472
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:56:19 +0900", "total"=>8895965, "start"=>1, "display"=>10,
473
+ "last_build_date"=>"Sat, 24 Jun 2017 20:56:19 +0900", "total"=>8895965, "start"=>1, "display"=>10,
473
474
  "items"=>[
474
475
  {
475
476
  "title"=>"팩앤롤 접이식 휴대용 핸드 <b>쇼핑</b>카트",
@@ -478,8 +479,8 @@ search_results = Naver::Search.shop(query: "쇼핑")
478
479
  "lprice"=>"10400",
479
480
  "hprice"=>"0",
480
481
  "mallName"=>"베이직기프트",
481
- "productId"=>"11449581836",
482
- "productType"=>"2"
482
+ "product_id"=>"11449581836",
483
+ "product_type"=>"2"
483
484
  },
484
485
  ...
485
486
  ]
@@ -493,7 +494,7 @@ puts search_results.items[0].title
493
494
  ```ruby
494
495
  search_results = Naver::Search.doc(query: "전문자료")
495
496
  # => #<Naver::ObjectifiedHash:70284980468480 {hash: {
496
- "lastBuildDate"=>"Sat, 24 Jun 2017 20:57:34 +0900", "total"=>41554, "start"=>1, "display"=>10,
497
+ "last_build_date"=>"Sat, 24 Jun 2017 20:57:34 +0900", "total"=>41554, "start"=>1, "display"=>10,
497
498
  "items"=>[
498
499
  {
499
500
  "title"=>"이미지 검색 기능을 가진 문서간 <b>전문자료</b>의 유사도 검색 시스템",
@@ -10,8 +10,10 @@ module Naver # :nodoc:
10
10
  # Converts the response body to an ObjectifiedHash.
11
11
  def self.parse(body)
12
12
  if body.is_a?(Hash)
13
+ body = body.to_underscore_keys
13
14
  ObjectifiedHash.new(body)
14
15
  elsif body.is_a?(Array)
16
+ body = body.to_underscore_keys
15
17
  body.collect! { |e| ObjectifiedHash.new(e) }
16
18
  elsif body
17
19
  true
@@ -0,0 +1,40 @@
1
+ # Hash.to_underscore_keys
2
+ class Hash
3
+ # Recursively converts CamelCase hash keys to underscore
4
+ def to_underscore_keys(value = self)
5
+ case value
6
+ when Array
7
+ value.map { |v| to_underscore_keys(v) }
8
+ when Hash
9
+ underscore_hash(value)
10
+ else
11
+ value
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def underscore_hash(value)
18
+ Hash[value.map { |k, v| [underscore_key(k), to_underscore_keys(v)] }]
19
+ end
20
+
21
+ def underscore_key(key)
22
+ if key.is_a?(Symbol)
23
+ underscore(key.to_s).to_sym
24
+ elsif key.is_a?(String)
25
+ underscore(key)
26
+ else
27
+ key # can't snakify anything except strings and symbols
28
+ end
29
+ end
30
+
31
+ def underscore(camel_cased_word)
32
+ return camel_cased_word unless camel_cased_word =~ /[A-Z-]|::/
33
+ word = camel_cased_word.to_s.gsub("::".freeze, "/".freeze)
34
+ word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2'.freeze)
35
+ word.gsub!(/([a-z\d])([A-Z])/, '\1_\2'.freeze)
36
+ word.tr!("-".freeze, "_".freeze)
37
+ word.downcase!
38
+ word
39
+ end
40
+ end
@@ -5,14 +5,14 @@ module Naver # :nodoc:
5
5
  # 주소 -> 좌표 변환
6
6
  # @param params [Hash] Params for the search
7
7
  def geocode(params = {})
8
- parse(JSON.parse(connection.get("/v1/map/geocode", params).body)["result"]["items"])
8
+ parse(JSON.parse(connection.get("/v1/map/geocode", params).body)["result"])
9
9
  end
10
10
 
11
11
  # 좌표 -> 주소 변환
12
12
  # @param params [Hash] Params for the search
13
13
  def reverse_geocode(params = {})
14
14
  params = { query: "#{params[:lat]}, #{params[:lng]}" }
15
- parse(JSON.parse(connection.get("/v1/map/reversegeocode", params).body)["result"]["items"])
15
+ parse(JSON.parse(connection.get("/v1/map/reversegeocode", params).body)["result"])
16
16
  end
17
17
  end
18
18
  end
@@ -17,7 +17,12 @@ module Naver # :nodoc:
17
17
  # @return [Hash] 변환 결과
18
18
  def romanization(query:)
19
19
  params = { query: query }
20
- parse(JSON.parse(connection.get("/v1/krdict/romanization", params).body)["aResult"][0])
20
+ result = JSON.parse(connection.get("/v1/krdict/romanization", params).body)["aResult"][0]
21
+ if result
22
+ result["firstName"] = result.delete("sFirstName")
23
+ result["items"] = result.delete("aItems")
24
+ end
25
+ parse(result)
21
26
  end
22
27
  end
23
28
  end
@@ -2,6 +2,7 @@ require "oauth2"
2
2
  require "faraday"
3
3
 
4
4
  require "naver/sdk/version"
5
+ require "naver/ext/hash/to_underscore_keys"
5
6
  require "naver/config"
6
7
  require "naver/connection"
7
8
  require "naver/client"
@@ -1,5 +1,5 @@
1
1
  module Naver
2
2
  module Sdk
3
- VERSION = "0.3.0"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naver-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Surim Kim
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-25 00:00:00.000000000 Z
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -136,6 +136,7 @@ files:
136
136
  - lib/naver/config.rb
137
137
  - lib/naver/connection.rb
138
138
  - lib/naver/error.rb
139
+ - lib/naver/ext/hash/to_underscore_keys.rb
139
140
  - lib/naver/map.rb
140
141
  - lib/naver/oauth.rb
141
142
  - lib/naver/objectified_hash.rb