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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +0 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +72 -0
- data/LICENSE.txt +21 -0
- data/README.md +325 -0
- data/Rakefile +18 -0
- data/lib/social_nets_db/db.yml +525 -0
- data/lib/social_nets_db/fn_validations.rb +67 -0
- data/lib/social_nets_db/social_net.rb +111 -0
- data/lib/social_nets_db/support.rb +36 -0
- data/lib/social_nets_db/svg/gettr.svg +5 -0
- data/lib/social_nets_db/tag_helper.rb +36 -0
- data/lib/social_nets_db/version.rb +5 -0
- data/lib/social_nets_db.rb +17 -0
- data/social_nets_db.gemspec +45 -0
- metadata +176 -0
@@ -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,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: []
|