naver-sdk 0.3.0 → 0.4.0

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