social_nets_db 0.0.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.
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Support
4
+
5
+ extend FnValidations
6
+
7
+ # Direct analogue of Rails' `String#present?`
8
+ #
9
+ # @return [Boolean] is the passed argument is a non-empty String
10
+ # @param arg [Any] the thing to check
11
+ #
12
+ def present_str?(arg)
13
+ arg.is_a?(String) && arg != ""
14
+ end
15
+
16
+ # From https://avdi.codes/recursively-symbolize-keys/
17
+ #
18
+ def recursively_symbolize_keys(hash)
19
+ validate_argument_type! hash, Hash
20
+ hash.inject({}) { |result, (key, value)|
21
+ new_key = case key
22
+ when String then key.to_sym
23
+ else key
24
+ end
25
+
26
+ new_value = case value
27
+ when Hash then symbolize_keys(value)
28
+ else value
29
+ end
30
+
31
+ result[new_key] = new_value
32
+ result
33
+ }
34
+ end
35
+
36
+ end
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="99" height="100" viewBox="0 0 99 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
+ <path d="M91.544,25.645c-1.775,10 -6.452,18.226 -13.872,25.484c3.065,0.645 6.614,-0.806 8.871,-2.903c-0.806,4.032 -2.097,7.903 -4.193,11.613c-3.549,6.451 -9.194,11.774 -15.322,15.484c-8.871,5.161 -18.871,6.613 -29.517,8.386c-7.096,1.13 -14.516,2.259 -19.032,7.098c-2.258,2.419 -3.871,5.806 -4.839,9.193c-8.709,-12.419 -15,-26.935 -13.387,-39.194c2.259,-17.258 20,-30.322 39.839,-38.225c20.484,-8.387 43.387,-11.291 58.226,-22.581c-1.774,5.645 -4.033,11.29 -7.097,16.29c-3.065,5.162 -6.935,9.839 -11.129,14.033c4.678,-0.323 8.064,-1.936 11.452,-4.678Z" style="fill:#f00;fill-rule:nonzero;"/>
5
+ </svg>
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: false
2
+
3
+ require_relative "support"
4
+
5
+ module TagHelper
6
+
7
+ include Support
8
+
9
+ def tag_attributes_to_s(options)
10
+ fail ArgumentError, "A Hash must be passed, you pass #{options.class}: #{options.inspect}" unless options.is_a? Hash
11
+ options.map { |pair| stringify_pair(*pair) }
12
+ .reject { |stringified_attribute| [nil, ""].include?(stringified_attribute) }
13
+ .join(" ")
14
+ end
15
+
16
+ private def stringify_pair(attribute_name, attribute_value)
17
+ str_value = stringify_value(attribute_value)
18
+ return "" if [nil, ""].include? str_value
19
+ "#{attribute_name}=\"#{str_value}\""
20
+ end
21
+
22
+ private def stringify_value(value)
23
+ value.is_a?(Array) ? value.join(" ") : value.to_s
24
+ end
25
+
26
+ def merge_style_values(existing:, incoming:)
27
+ return existing unless present_str? incoming
28
+ [existing, "#{incoming};"].join("; ").gsub(";;", ";")
29
+ end
30
+
31
+ def merge_class_values(existing:, incoming:)
32
+ return existing unless present_str? incoming
33
+ [existing, incoming]
34
+ end
35
+
36
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class SocialNetsDB
4
+ VERSION = "0.0.1".freeze
5
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yaml"
4
+
5
+ require_relative "social_nets_db/version"
6
+ require_relative "social_nets_db/fn_validations"
7
+ require_relative "social_nets_db/support"
8
+ require_relative "social_nets_db/tag_helper"
9
+ require_relative "social_nets_db/social_net"
10
+
11
+ class SocialNetsDB
12
+
13
+ # RECORDS = recursively_symbolize_keys(YAML.load_file(File.expand_path("social_nets_db/db.yml", __dir__))).freeze
14
+ # RECORDS = YAML.load_file(File.expand_path("social_nets_db/db.yml", __dir__)).map { _1.transform_keys(&:to_sym) }.freeze
15
+ RECORDS = YAML.load_file(File.expand_path("social_nets_db/db.yml", __dir__)).freeze
16
+
17
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ # https://guides.rubygems.org/name-your-gem/
4
+ # https://bundler.io/guides/creating_gem.html
5
+ # https://guides.rubyonrails.org/engines.html
6
+ # https://guides.rubyonrails.org/plugins.html
7
+
8
+ require_relative "lib/social_nets_db/version"
9
+
10
+ Gem::Specification.new do |spec|
11
+ spec.name = "social_nets_db"
12
+ spec.version = SocialNetsDB::VERSION
13
+ spec.authors = ["Sergey Pedan"]
14
+ spec.email = ["sergey.pedan@gmail.com"]
15
+ spec.license = "MIT"
16
+
17
+ spec.summary = "A non-comprehensive database of social nets packed in a Ruby gem"
18
+ spec.description = "#{spec.summary}. We have helpers for color, user page URL, FontAwesome icon, social net domain, some tags for grouping social nets, etc."
19
+
20
+ spec.homepage = "https://github.com/sergeypedan/social-nets-db"
21
+ spec.metadata = { "changelog_uri" => "https://github.com/sergeypedan/social-nets-db/blob/master/CHANGELOG.md",
22
+ "homepage_uri" => spec.homepage,
23
+ "source_code_uri" => "https://github.com/sergeypedan/social-nets-db.git"}
24
+
25
+ spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
26
+ spec.rdoc_options = ["--charset=UTF-8"]
27
+ spec.bindir = "exe"
28
+ spec.executables = []
29
+ spec.require_paths = ["lib"]
30
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
31
+ `git ls-files`.split("\n")
32
+ .reject { |f| %w[bin spec test].any? { |dir| f.start_with? dir } }
33
+ .reject { |f| f.start_with? "." }
34
+ end
35
+
36
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
37
+
38
+ spec.add_development_dependency "bundler", ">= 2", "< 3"
39
+ spec.add_development_dependency "bundler-audit", ">= 0.9", "< 1"
40
+ spec.add_development_dependency "pry", "< 1"
41
+ spec.add_development_dependency "pry-byebug", "~> 3"
42
+ spec.add_development_dependency "rake", "~> 13"
43
+ spec.add_development_dependency "rspec", "~> 3"
44
+ spec.add_development_dependency "rubocop", "~> 1"
45
+ end
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: social_nets_db
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Sergey Pedan
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-12-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler-audit
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0.9'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '1'
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0.9'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: pry
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "<"
58
+ - !ruby/object:Gem::Version
59
+ version: '1'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '1'
67
+ - !ruby/object:Gem::Dependency
68
+ name: pry-byebug
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '3'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '3'
81
+ - !ruby/object:Gem::Dependency
82
+ name: rake
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '13'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '13'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rspec
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '3'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '3'
109
+ - !ruby/object:Gem::Dependency
110
+ name: rubocop
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1'
123
+ description: A non-comprehensive database of social nets packed in a Ruby gem. We
124
+ have helpers for color, user page URL, FontAwesome icon, social net domain, some
125
+ tags for grouping social nets, etc.
126
+ email:
127
+ - sergey.pedan@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files:
131
+ - README.md
132
+ - LICENSE.txt
133
+ files:
134
+ - CHANGELOG.md
135
+ - Gemfile
136
+ - Gemfile.lock
137
+ - LICENSE.txt
138
+ - README.md
139
+ - Rakefile
140
+ - lib/social_nets_db.rb
141
+ - lib/social_nets_db/db.yml
142
+ - lib/social_nets_db/fn_validations.rb
143
+ - lib/social_nets_db/social_net.rb
144
+ - lib/social_nets_db/support.rb
145
+ - lib/social_nets_db/svg/gettr.svg
146
+ - lib/social_nets_db/tag_helper.rb
147
+ - lib/social_nets_db/version.rb
148
+ - social_nets_db.gemspec
149
+ homepage: https://github.com/sergeypedan/social-nets-db
150
+ licenses:
151
+ - MIT
152
+ metadata:
153
+ changelog_uri: https://github.com/sergeypedan/social-nets-db/blob/master/CHANGELOG.md
154
+ homepage_uri: https://github.com/sergeypedan/social-nets-db
155
+ source_code_uri: https://github.com/sergeypedan/social-nets-db.git
156
+ post_install_message:
157
+ rdoc_options:
158
+ - "--charset=UTF-8"
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: 2.4.0
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubygems_version: 3.2.15
173
+ signing_key:
174
+ specification_version: 4
175
+ summary: A non-comprehensive database of social nets packed in a Ruby gem
176
+ test_files: []