flagmoji 0.1.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.
@@ -0,0 +1,29 @@
1
+ require_relative 'lib/flagmoji/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "flagmoji"
5
+ spec.version = Flagmoji::VERSION
6
+ spec.authors = ["Chong Hui"]
7
+ spec.email = ["iamchoonggg@gmail.com"]
8
+
9
+ spec.summary = "Flag Emoji"
10
+ spec.description = "Retrieves flag emoji from country code"
11
+ spec.homepage = "https://github.com/choonggg/flagmoji"
12
+ spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
14
+
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = spec.homepage
17
+ # spec.metadata["changelog_uri"] = spec.homepage
18
+
19
+ # Specify which files should be added to the gem when it is released.
20
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
+ end
24
+ spec.bindir = "exe"
25
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
+ spec.require_paths = ["lib"]
27
+
28
+ spec.add_development_dependency "minitest", "~> 5.14", ">= 5.14.2"
29
+ end
@@ -0,0 +1,29 @@
1
+ require "flagmoji/version"
2
+ require "flagmoji/country"
3
+ require "json"
4
+
5
+ module Flagmoji
6
+ extend self
7
+
8
+ def data_file
9
+ File.expand_path("../../data/flags.json", __FILE__)
10
+ end
11
+
12
+ def all
13
+ @all ||= map_data_to_country
14
+ end
15
+
16
+ def from_code(code)
17
+ all[code] || Country.null
18
+ end
19
+
20
+ alias_method :[], :from_code
21
+
22
+ private
23
+
24
+ def map_data_to_country
25
+ json = JSON.parse(File.read(data_file))
26
+
27
+ Hash[json.map { |country, data| [country, Country.from_data(data)] }]
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ module Flagmoji
2
+ class Country
3
+ attr_reader :code, :name, :unicode, :emoji
4
+
5
+ def initialize(code:, name:, unicode:, emoji:)
6
+ @code = code
7
+ @name = name
8
+ @unicode = unicode
9
+ @emoji = emoji
10
+ end
11
+
12
+ def self.from_data(data)
13
+ new(data.transform_keys(&:to_sym))
14
+ end
15
+
16
+ def self.null
17
+ new(
18
+ code: "N/A",
19
+ name: "Country missing",
20
+ unicode: "",
21
+ emoji: ""
22
+ )
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,3 @@
1
+ module Flagmoji
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flagmoji
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Chong Hui
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.14'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 5.14.2
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '5.14'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.14.2
33
+ description: Retrieves flag emoji from country code
34
+ email:
35
+ - iamchoonggg@gmail.com
36
+ executables: []
37
+ extensions: []
38
+ extra_rdoc_files: []
39
+ files:
40
+ - ".gitignore"
41
+ - CODE_OF_CONDUCT.md
42
+ - Gemfile
43
+ - Gemfile.lock
44
+ - LICENSE.txt
45
+ - README.md
46
+ - Rakefile
47
+ - bin/console
48
+ - bin/setup
49
+ - data/flags.json
50
+ - flagmoji.gemspec
51
+ - lib/flagmoji.rb
52
+ - lib/flagmoji/country.rb
53
+ - lib/flagmoji/version.rb
54
+ homepage: https://github.com/choonggg/flagmoji
55
+ licenses:
56
+ - MIT
57
+ metadata:
58
+ homepage_uri: https://github.com/choonggg/flagmoji
59
+ source_code_uri: https://github.com/choonggg/flagmoji
60
+ post_install_message:
61
+ rdoc_options: []
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 2.3.0
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubygems_version: 3.0.3
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: Flag Emoji
79
+ test_files: []