social_nets_db 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []