parseapi 1.9.0 → 1.9.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: b27f8a145b9ad37ccd82a61e8e175665416036116ed037bb68640d5bd17d3d5c
4
- data.tar.gz: 216cee2f23076dbe2cdcb1339313a157356d63cae236c2204d795fa17242cda7
3
+ metadata.gz: 1cc18f225a23e41055dcf0d229ad8db68e14226dc6f9fcacf67c61e4d9d93ee5
4
+ data.tar.gz: a7e36c33cc9bdde7cff44a9d83f207486fa5dd1ad9248b671d9084e3b79ccc9f
5
5
  SHA512:
6
- metadata.gz: 63b2f6b437f1c2e77b8d39a7da11b497a473616f22ac819cc838253495f1ec2b9b146a5f7f6f89025df9a2bc66e18b58a7037b9156bdfc84bc39116280757df2
7
- data.tar.gz: 3fd6e9ef3a55d5c35a7ae693573b17b1fe84aa41936e2836de0def9c1819f0347ee8d49bbff0718d794fc279a26a7b4520d3383805f6e56ca83b6ad806808ec6
6
+ metadata.gz: 412f7871d1f0532c7b305f7b8622caa94e65bfec2a0cb72162ea11e563bd971ab73ca67e7dc2dd87f809b46558ecdd1136fb36d1d7ce9acb929e0672c68b56e7
7
+ data.tar.gz: e10bbf88c255ee45442bd1ebc6f74a61584fd788c6a90fe696efaddd5d608c661bcb9748d5ec634d7941c0ff27e72e6b201f3b89f89c20de4b3b2821629fcf27
data/README.md CHANGED
@@ -419,3 +419,35 @@ Successful checks may be reused for up to 24 hours. `pretty` optionally formats
419
419
  Stack defaults to a 35-second transport timeout so a first scan has time to finish. Other lookups retain their 10-second default. An explicit client timeout takes precedence.
420
420
 
421
421
  Vehicle lookups use `vin` as the input and response field. Existing VIN methods remain available for compatibility.
422
+
423
+ ## Emoji catalog additions
424
+
425
+ Resolve Unicode emoji or a named shortcode, search or browse a bounded catalog,
426
+ parse emoji positions in text, and convert between Unicode and a selected shortcode source.
427
+ The ordinary lookup remains four fields:
428
+
429
+ ```http
430
+ GET /emoji/rocket
431
+ ```
432
+
433
+ ```json
434
+ {"emoji":"🚀","name":"Rocket","shortcodes":[":rocket:","rocket"],"category":"Travel & Places"}
435
+ ```
436
+
437
+ Use `deep=true` for Unicode facts, keywords, tone families and available artwork.
438
+ Artwork is keyed by style: `deep.artwork.openmoji.svg` is the SVG URL, and
439
+ `deep.artwork.openmoji.png["72"]` is the 72×72 PNG URL (use your language’s map
440
+ access syntax). The same shape applies to `noto` and `twemoji`. Missing styles
441
+ and formats are omitted. URLs pin immutable artwork editions and retain their bytes.
442
+ Core values stay unchanged. Text parsing returns `emojis` with UTF-16 `positions`;
443
+ conversion returns `text` and unresolved tokens with positions and reasons.
444
+
445
+ The compact JSON catalog contains offline identity, qualification-form and
446
+ shortcode indexes. Request `profile=full` when artwork is needed and `lang` when
447
+ localized names and keywords are needed. `/emoji/metadata` carries dataset
448
+ coverage and shared source notices once. Artwork supports Google Noto, Twemoji
449
+ and OpenMoji, with real SVG/PNG availability and immutable first-party URLs.
450
+ A device's emoji font remains the ordinary display.
451
+
452
+ These additions are a local release candidate until the matching SDK and
453
+ backend are published. Existing lookup and search contracts are preserved.
@@ -394,14 +394,43 @@ module ParseAPI
394
394
  get('/weather', lat: lat, lon: lon, deep: deep, date: date)
395
395
  end
396
396
 
397
- def emoji(emoji, deep: false, lang: nil)
398
- get("/emoji/#{seg(emoji)}", deep: deep, lang: lang)
397
+ def emoji(emoji, deep: false, lang: nil, shortcode_source: nil)
398
+ get("/emoji/#{seg(emoji)}", deep: deep, lang: lang, shortcode_source: shortcode_source)
399
399
  end
400
400
 
401
- def emoji_search(query, limit: nil, deep: false, lang: nil)
402
- get('/emoji', q: query, limit: limit, deep: deep, lang: lang)
401
+ def emoji_search(query, limit: nil, deep: false, lang: nil, category: nil, subcategory: nil, version: nil, max_version: nil, include_skin_tones: nil, offset: nil)
402
+ get('/emoji', q: query, limit: limit, deep: deep, lang: lang, category: category, subcategory: subcategory, version: version, max_version: max_version, include_skin_tones: include_skin_tones.nil? ? nil : include_skin_tones.to_s, offset: offset)
403
403
  end
404
404
 
405
+ def emoji_browse(limit: nil, deep: false, lang: nil, category: nil, subcategory: nil, version: nil, max_version: nil, include_skin_tones: nil, offset: nil)
406
+ get('/emoji', limit: limit, deep: deep, lang: lang, category: category, subcategory: subcategory, version: version, max_version: max_version, include_skin_tones: include_skin_tones.nil? ? nil : include_skin_tones.to_s, offset: offset)
407
+ end
408
+
409
+ # Download the full filtered JSON catalog, including offline resolution maps.
410
+ def emoji_catalog(deep: true, lang: nil, category: nil, subcategory: nil, version: nil, max_version: nil, include_skin_tones: nil, profile: nil)
411
+ get('/emoji/catalog', profile: profile, deep: deep.to_s, lang: lang, category: category, subcategory: subcategory, version: version, max_version: max_version, include_skin_tones: include_skin_tones.nil? ? nil : include_skin_tones.to_s)
412
+ end
413
+
414
+ def emoji_metadata
415
+ get('/emoji/metadata')
416
+ end
417
+
418
+ def emoji_categories
419
+ get('/emoji/categories')
420
+ end
421
+
422
+ # Positions are UTF-16 code units; end is exclusive.
423
+ def emoji_parse(text, deep: false, lang: nil)
424
+ get('/emoji/parse', { deep: deep, lang: lang }, {}, { text: text })
425
+ end
426
+
427
+ def emoji_convert(text, direction:, shortcode_source:)
428
+ get('/emoji/convert', {direction: direction, shortcode_source: shortcode_source}, {}, {text: text})
429
+ end
430
+
431
+
432
+
433
+
405
434
  # Parse or convert a measurement. Amount is a decimal string. Without to, use the
406
435
  # type's canonical unit. Locale and system (us or imperial) resolve explicit ambiguity.
407
436
  def measure(measure, to: nil, locale: nil, system: nil)
@@ -1,3 +1,3 @@
1
1
  module ParseAPI
2
- VERSION = '1.9.0'.freeze
2
+ VERSION = '1.9.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parseapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ParseAPI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-29 00:00:00.000000000 Z
11
+ date: 2026-10-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: