amber_component 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 867893765c3c9d6132ea68c2f977b931a232b9e50200a49a8c450efed151fb2d
4
+ data.tar.gz: 2a94d57db993a110535648678721fa27b8c896baee1963546705bb5752c57325
5
+ SHA512:
6
+ metadata.gz: f05bb2a4895ed3ae859101fe3dad8d89f4f2b03c52e323354586b789f0bbe9461f3f992dea8c5ab5d119828d444e84d8ef00ac5a78ed1d8ba672469b3812f6d8
7
+ data.tar.gz: 28dd41d02e58592d7edcc8286b7cab5be3712548e9277912ef20742e146956caee7040f7d6665c241e2164be4d12bcef6dd04ade0befc11f1e45ccfc165316ea
data/.kanbn/index.md ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ startedColumns:
3
+ - 'In Progress'
4
+ completedColumns:
5
+ - Done
6
+ ---
7
+
8
+ # Amber Components
9
+
10
+ ## Backlog
11
+
12
+ - [check-if-we-need-full-rails-gem-pack](tasks/check-if-we-need-full-rails-gem-pack.md)
13
+ - [verify-if-template-is-haml-or-erb](tasks/verify-if-template-is-haml-or-erb.md)
14
+ - [bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method](tasks/bind-clas-to-action-view-method-call-example-component-data-data-without-calling-any-method.md)
15
+ - [add-instance-variables-to-view-when-block-given-markdown](tasks/add-instance-variables-to-view-when-block-given-markdown.md)
16
+
17
+ ## In Progress
18
+
19
+ - [bind-scoped-css-to-head-of-doc](tasks/bind-scoped-css-to-head-of-doc.md)
20
+
21
+ ## Done
22
+
23
+ - [simple-proto](tasks/simple-proto.md)
@@ -0,0 +1,9 @@
1
+ ---
2
+ created: 2022-07-24T21:05:00.209Z
3
+ updated: 2022-07-24T21:05:00.205Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ ---
8
+
9
+ # Add instance variables to view when block given - markdown
@@ -0,0 +1,9 @@
1
+ ---
2
+ created: 2022-07-24T09:34:44.925Z
3
+ updated: 2022-07-24T09:35:24.434Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ ---
8
+
9
+ # bind clas to ActionView method (call ExampleComponent data: data - without calling any method)
@@ -0,0 +1,10 @@
1
+ ---
2
+ created: 2022-07-23T15:24:49.521Z
3
+ updated: 2022-07-24T12:09:45.281Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ started: 2022-07-24T12:09:45.282Z
8
+ ---
9
+
10
+ # bind scoped css to head of doc
@@ -0,0 +1,9 @@
1
+ ---
2
+ created: 2022-07-23T15:23:43.278Z
3
+ updated: 2022-07-23T15:23:43.275Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ ---
8
+
9
+ # check if we need full rails gem pack
@@ -0,0 +1,10 @@
1
+ ---
2
+ created: 2022-07-23T15:23:22.133Z
3
+ updated: 2022-07-24T09:34:38.629Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ completed: 2022-07-24T09:34:38.629Z
8
+ ---
9
+
10
+ # simple proto
@@ -0,0 +1,9 @@
1
+ ---
2
+ created: 2022-07-23T15:24:25.486Z
3
+ updated: 2022-07-23T15:24:25.484Z
4
+ assigned: ""
5
+ progress: 0
6
+ tags: []
7
+ ---
8
+
9
+ # verify if template is HAML or ERB
data/.rubocop.yml ADDED
@@ -0,0 +1,184 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+ SuggestExtensions: false
4
+ EnabledByDefault: true
5
+ Exclude:
6
+ - 'bin/*'
7
+ - 'vendor/bundle/**/*'
8
+ - 'spec/**/*'
9
+ - 'test/**/*'
10
+
11
+ Style/ClassMethodsDefinitions:
12
+ EnforcedStyle: self_class
13
+
14
+ Style/StringLiterals:
15
+ Enabled: false
16
+
17
+ Layout/RedundantLineBreak:
18
+ Enabled: false
19
+
20
+ Layout/EmptyLinesAroundExceptionHandlingKeywords:
21
+ Enabled: false
22
+
23
+ Layout/EmptyLinesAroundBlockBody:
24
+ Enabled: false
25
+
26
+ Layout/EmptyLines:
27
+ Enabled: false
28
+
29
+ Layout/EmptyLinesAroundClassBody:
30
+ Enabled: false
31
+
32
+ Layout/EmptyLinesAroundModuleBody:
33
+ Enabled: false
34
+
35
+ Layout/HashAlignment:
36
+ Enabled: false
37
+
38
+ Metrics/AbcSize:
39
+ Enabled: false
40
+
41
+ Metrics/MethodLength:
42
+ Max: 30
43
+
44
+ Metrics/ClassLength:
45
+ Max: 200
46
+
47
+ Metrics/CyclomaticComplexity:
48
+ Max: 12
49
+
50
+ Style/Alias:
51
+ Enabled: false
52
+
53
+ Style/DisableCopsWithinSourceCodeDirective:
54
+ Enabled: false
55
+
56
+ Layout/ExtraSpacing:
57
+ Enabled: false
58
+
59
+ Layout/SingleLineBlockChain:
60
+ Enabled: false
61
+
62
+ Metrics/PerceivedComplexity:
63
+ Max: 12
64
+
65
+ Layout/ClassStructure:
66
+ Enabled: false
67
+
68
+ Style/OpenStructUse:
69
+ Enabled: true
70
+
71
+ Style/MethodCalledOnDoEndBlock:
72
+ Enabled: true
73
+
74
+ Style/LambdaCall:
75
+ Enabled: false
76
+
77
+ Style/OptionHash:
78
+ Enabled: false
79
+
80
+ Style/QuotedSymbols:
81
+ Enabled: true
82
+
83
+ Style/ReturnNil:
84
+ Enabled: true
85
+ EnforcedStyle: return
86
+
87
+ Style/ArrayCoercion:
88
+ Enabled: true
89
+
90
+ Style/AutoResourceCleanup:
91
+ Enabled: true
92
+
93
+ Style/StringChars:
94
+ Enabled: true
95
+
96
+ Style/TopLevelMethodDefinition:
97
+ Enabled: true
98
+
99
+ Style/RedundantArgument:
100
+ Enabled: true
101
+
102
+ Lint/MissingSuper:
103
+ Enabled: false
104
+
105
+ Style/Documentation:
106
+ Enabled: true
107
+
108
+ Style/ClassAndModuleChildren:
109
+ Enabled: false
110
+
111
+ Naming/BlockForwarding:
112
+ Enabled: true
113
+
114
+ Style/ImplicitRuntimeError:
115
+ Enabled: false
116
+
117
+ Style/InPatternThen:
118
+ Enabled: true
119
+
120
+ Style/MethodCallWithArgsParentheses:
121
+ Enabled: false
122
+
123
+ Style/ModuleFunction:
124
+ EnforcedStyle: extend_self
125
+
126
+ Style/MissingElse:
127
+ Enabled: false
128
+
129
+ Lint/NumberConversion:
130
+ Enabled: false
131
+
132
+ Lint/ConstantResolution:
133
+ Enabled: false
134
+
135
+ Style/RescueStandardError:
136
+ Enabled: false
137
+
138
+ Style/FormatStringToken:
139
+ Enabled: false
140
+
141
+ Style/FormatString:
142
+ Enabled: false
143
+
144
+ Style/DocumentationMethod:
145
+ Enabled: false
146
+
147
+ Style/Copyright:
148
+ Enabled: false
149
+
150
+ Style/StringHashKeys:
151
+ Enabled: false
152
+
153
+ Style/InlineComment:
154
+ Enabled: false
155
+
156
+ Layout/FirstHashElementLineBreak:
157
+ Enabled: false
158
+
159
+ Layout/FirstMethodArgumentLineBreak:
160
+ Enabled: false
161
+
162
+ Style/ConstantVisibility:
163
+ Enabled: false
164
+
165
+ Layout/FirstArrayElementLineBreak:
166
+ Enabled: false
167
+
168
+ Layout/MultilineMethodArgumentLineBreaks:
169
+ Enabled: false
170
+
171
+ Layout/MultilineAssignmentLayout:
172
+ Enabled: false
173
+
174
+ Bundler/GemComment:
175
+ Enabled: false
176
+
177
+ Bundler/GemVersion:
178
+ Enabled: false
179
+
180
+ Layout/LineLength:
181
+ Max: 120
182
+
183
+ Style/IfUnlessModifier:
184
+ Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-3.1.0
data/.solargraph.yml ADDED
@@ -0,0 +1,22 @@
1
+ ---
2
+ include:
3
+ - "**/*.rb"
4
+ exclude:
5
+ - spec/**/*
6
+ - test/**/*
7
+ - vendor/**/*
8
+ - ".bundle/**/*"
9
+ require: []
10
+ domains: []
11
+ reporters:
12
+ - rubocop
13
+ - require_not_found
14
+ formatter:
15
+ rubocop:
16
+ cops: safe
17
+ except: []
18
+ only: []
19
+ extra_args: []
20
+ require_paths: []
21
+ plugins: []
22
+ max_files: 5000
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2022-07-21
4
+
5
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in amber_components.gemspec
6
+ gemspec
7
+
8
+ gem 'rake', '~> 13.0'
9
+
10
+ # Development dependencies
11
+ gem 'byebug'
12
+ gem 'git'
13
+ gem 'haml'
14
+ gem 'rubocop', '~> 1.21'
15
+ gem 'sassc'
16
+ gem 'solargraph', '~> 0.45.0'
17
+ gem 'yard'
18
+
19
+ # Testing dependencies
20
+ gem 'minitest', '~> 5.0'
21
+ gem 'shoulda-context', '~> 2.0'
22
+ gem 'simplecov', require: false
data/Gemfile.lock ADDED
@@ -0,0 +1,250 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ amber_component (0.0.2)
5
+ memery (>= 1.4.1)
6
+ rails (>= 6)
7
+ tilt (>= 2.0.10)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actioncable (7.0.3.1)
13
+ actionpack (= 7.0.3.1)
14
+ activesupport (= 7.0.3.1)
15
+ nio4r (~> 2.0)
16
+ websocket-driver (>= 0.6.1)
17
+ actionmailbox (7.0.3.1)
18
+ actionpack (= 7.0.3.1)
19
+ activejob (= 7.0.3.1)
20
+ activerecord (= 7.0.3.1)
21
+ activestorage (= 7.0.3.1)
22
+ activesupport (= 7.0.3.1)
23
+ mail (>= 2.7.1)
24
+ net-imap
25
+ net-pop
26
+ net-smtp
27
+ actionmailer (7.0.3.1)
28
+ actionpack (= 7.0.3.1)
29
+ actionview (= 7.0.3.1)
30
+ activejob (= 7.0.3.1)
31
+ activesupport (= 7.0.3.1)
32
+ mail (~> 2.5, >= 2.5.4)
33
+ net-imap
34
+ net-pop
35
+ net-smtp
36
+ rails-dom-testing (~> 2.0)
37
+ actionpack (7.0.3.1)
38
+ actionview (= 7.0.3.1)
39
+ activesupport (= 7.0.3.1)
40
+ rack (~> 2.0, >= 2.2.0)
41
+ rack-test (>= 0.6.3)
42
+ rails-dom-testing (~> 2.0)
43
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
44
+ actiontext (7.0.3.1)
45
+ actionpack (= 7.0.3.1)
46
+ activerecord (= 7.0.3.1)
47
+ activestorage (= 7.0.3.1)
48
+ activesupport (= 7.0.3.1)
49
+ globalid (>= 0.6.0)
50
+ nokogiri (>= 1.8.5)
51
+ actionview (7.0.3.1)
52
+ activesupport (= 7.0.3.1)
53
+ builder (~> 3.1)
54
+ erubi (~> 1.4)
55
+ rails-dom-testing (~> 2.0)
56
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
57
+ activejob (7.0.3.1)
58
+ activesupport (= 7.0.3.1)
59
+ globalid (>= 0.3.6)
60
+ activemodel (7.0.3.1)
61
+ activesupport (= 7.0.3.1)
62
+ activerecord (7.0.3.1)
63
+ activemodel (= 7.0.3.1)
64
+ activesupport (= 7.0.3.1)
65
+ activestorage (7.0.3.1)
66
+ actionpack (= 7.0.3.1)
67
+ activejob (= 7.0.3.1)
68
+ activerecord (= 7.0.3.1)
69
+ activesupport (= 7.0.3.1)
70
+ marcel (~> 1.0)
71
+ mini_mime (>= 1.1.0)
72
+ activesupport (7.0.3.1)
73
+ concurrent-ruby (~> 1.0, >= 1.0.2)
74
+ i18n (>= 1.6, < 2)
75
+ minitest (>= 5.1)
76
+ tzinfo (~> 2.0)
77
+ ast (2.4.2)
78
+ backport (1.2.0)
79
+ benchmark (0.2.0)
80
+ builder (3.2.4)
81
+ byebug (11.1.3)
82
+ concurrent-ruby (1.1.10)
83
+ crass (1.0.6)
84
+ diff-lcs (1.5.0)
85
+ digest (3.1.0)
86
+ docile (1.4.0)
87
+ e2mmap (0.1.0)
88
+ erubi (1.10.0)
89
+ ffi (1.15.5)
90
+ git (1.11.0)
91
+ rchardet (~> 1.8)
92
+ globalid (1.0.0)
93
+ activesupport (>= 5.0)
94
+ haml (5.2.2)
95
+ temple (>= 0.8.0)
96
+ tilt
97
+ i18n (1.12.0)
98
+ concurrent-ruby (~> 1.0)
99
+ jaro_winkler (1.5.4)
100
+ json (2.6.2)
101
+ kramdown (2.4.0)
102
+ rexml
103
+ kramdown-parser-gfm (1.1.0)
104
+ kramdown (~> 2.0)
105
+ loofah (2.18.0)
106
+ crass (~> 1.0.2)
107
+ nokogiri (>= 1.5.9)
108
+ mail (2.7.1)
109
+ mini_mime (>= 0.1.1)
110
+ marcel (1.0.2)
111
+ memery (1.4.1)
112
+ ruby2_keywords (~> 0.0.2)
113
+ method_source (1.0.0)
114
+ mini_mime (1.1.2)
115
+ mini_portile2 (2.8.0)
116
+ minitest (5.16.2)
117
+ net-imap (0.2.3)
118
+ digest
119
+ net-protocol
120
+ strscan
121
+ net-pop (0.1.1)
122
+ digest
123
+ net-protocol
124
+ timeout
125
+ net-protocol (0.1.3)
126
+ timeout
127
+ net-smtp (0.3.1)
128
+ digest
129
+ net-protocol
130
+ timeout
131
+ nio4r (2.5.8)
132
+ nokogiri (1.13.7)
133
+ mini_portile2 (~> 2.8.0)
134
+ racc (~> 1.4)
135
+ nokogiri (1.13.7-arm64-darwin)
136
+ racc (~> 1.4)
137
+ parallel (1.22.1)
138
+ parser (3.1.2.0)
139
+ ast (~> 2.4.1)
140
+ racc (1.6.0)
141
+ rack (2.2.4)
142
+ rack-test (2.0.2)
143
+ rack (>= 1.3)
144
+ rails (7.0.3.1)
145
+ actioncable (= 7.0.3.1)
146
+ actionmailbox (= 7.0.3.1)
147
+ actionmailer (= 7.0.3.1)
148
+ actionpack (= 7.0.3.1)
149
+ actiontext (= 7.0.3.1)
150
+ actionview (= 7.0.3.1)
151
+ activejob (= 7.0.3.1)
152
+ activemodel (= 7.0.3.1)
153
+ activerecord (= 7.0.3.1)
154
+ activestorage (= 7.0.3.1)
155
+ activesupport (= 7.0.3.1)
156
+ bundler (>= 1.15.0)
157
+ railties (= 7.0.3.1)
158
+ rails-dom-testing (2.0.3)
159
+ activesupport (>= 4.2.0)
160
+ nokogiri (>= 1.6)
161
+ rails-html-sanitizer (1.4.3)
162
+ loofah (~> 2.3)
163
+ railties (7.0.3.1)
164
+ actionpack (= 7.0.3.1)
165
+ activesupport (= 7.0.3.1)
166
+ method_source
167
+ rake (>= 12.2)
168
+ thor (~> 1.0)
169
+ zeitwerk (~> 2.5)
170
+ rainbow (3.1.1)
171
+ rake (13.0.6)
172
+ rchardet (1.8.0)
173
+ regexp_parser (2.5.0)
174
+ reverse_markdown (2.1.1)
175
+ nokogiri
176
+ rexml (3.2.5)
177
+ rubocop (1.32.0)
178
+ json (~> 2.3)
179
+ parallel (~> 1.10)
180
+ parser (>= 3.1.0.0)
181
+ rainbow (>= 2.2.2, < 4.0)
182
+ regexp_parser (>= 1.8, < 3.0)
183
+ rexml (>= 3.2.5, < 4.0)
184
+ rubocop-ast (>= 1.19.1, < 2.0)
185
+ ruby-progressbar (~> 1.7)
186
+ unicode-display_width (>= 1.4.0, < 3.0)
187
+ rubocop-ast (1.19.1)
188
+ parser (>= 3.1.1.0)
189
+ ruby-progressbar (1.11.0)
190
+ ruby2_keywords (0.0.5)
191
+ sassc (2.4.0)
192
+ ffi (~> 1.9)
193
+ shoulda-context (2.0.0)
194
+ simplecov (0.21.2)
195
+ docile (~> 1.1)
196
+ simplecov-html (~> 0.11)
197
+ simplecov_json_formatter (~> 0.1)
198
+ simplecov-html (0.12.3)
199
+ simplecov_json_formatter (0.1.4)
200
+ solargraph (0.45.0)
201
+ backport (~> 1.2)
202
+ benchmark
203
+ bundler (>= 1.17.2)
204
+ diff-lcs (~> 1.4)
205
+ e2mmap
206
+ jaro_winkler (~> 1.5)
207
+ kramdown (~> 2.3)
208
+ kramdown-parser-gfm (~> 1.1)
209
+ parser (~> 3.0)
210
+ reverse_markdown (>= 1.0.5, < 3)
211
+ rubocop (>= 0.52)
212
+ thor (~> 1.0)
213
+ tilt (~> 2.0)
214
+ yard (~> 0.9, >= 0.9.24)
215
+ strscan (3.0.4)
216
+ temple (0.8.2)
217
+ thor (1.2.1)
218
+ tilt (2.0.10)
219
+ timeout (0.3.0)
220
+ tzinfo (2.0.5)
221
+ concurrent-ruby (~> 1.0)
222
+ unicode-display_width (2.2.0)
223
+ webrick (1.7.0)
224
+ websocket-driver (0.7.5)
225
+ websocket-extensions (>= 0.1.0)
226
+ websocket-extensions (0.1.5)
227
+ yard (0.9.28)
228
+ webrick (~> 1.7.0)
229
+ zeitwerk (2.6.0)
230
+
231
+ PLATFORMS
232
+ arm64-darwin-20
233
+ ruby
234
+
235
+ DEPENDENCIES
236
+ amber_component!
237
+ byebug
238
+ git
239
+ haml
240
+ minitest (~> 5.0)
241
+ rake (~> 13.0)
242
+ rubocop (~> 1.21)
243
+ sassc
244
+ shoulda-context (~> 2.0)
245
+ simplecov
246
+ solargraph (~> 0.45.0)
247
+ yard
248
+
249
+ BUNDLED WITH
250
+ 2.3.14
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 amber-ruby
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/PLANS.md ADDED
@@ -0,0 +1,17 @@
1
+ app
2
+ |
3
+ +-- components
4
+ |
5
+ +-- example_component.rb
6
+ |
7
+ +-- example_component
8
+ |
9
+ +-- view.(haml|erb)
10
+ |
11
+ +-- style.(scss|css)
12
+ |
13
+ +-- script.(coffee|js)
14
+
15
+ 1.0 - actions, scoped styling views, js
16
+ 0.5 - components libraries
17
+ 0.1 - MVP - actions, views + nesting
data/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # AmberComponents
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/amber_components`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Install the gem and add to the application's Gemfile by executing:
10
+
11
+ $ bundle add amber_components
12
+
13
+ If bundler is not being used to manage dependencies, install the gem by executing:
14
+
15
+ $ gem install amber_components
16
+
17
+ ## Usage
18
+
19
+ TODO: Write usage instructions here
20
+
21
+ ## Development
22
+
23
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
24
+
25
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
26
+
27
+ ## Contributing
28
+
29
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/amber_components.
30
+
31
+ ## License
32
+
33
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
34
+
35
+ ## Problems
36
+
37
+ > An error occurred while installing ffi (1.15.5), and Bundler cannot continue.
38
+ >
39
+ > In Gemfile:
40
+ > sassc was resolved to 2.4.0, which depends on
41
+ > ffi
42
+
43
+ ```sh
44
+ $ gem install ffi -- --with-cflags="-fdeclspec"
45
+ ```
46
+
47
+ **puma**
48
+
49
+ > Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
50
+ >
51
+ > current directory: /Users/mateuszdrewniak/.rvm/gems/ruby-3.1.0@dupa/gems/puma-5.6.2/ext/puma_http11
52
+ >
53
+ > /Users/mateuszdrewniak/.rvm/rubies/ruby-3.1.0/bin/ruby -I /Users/mateuszdrewniak/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0 -r ./siteconf20220219-40641-4uxhq6.rb extconf.rb --with-cflags\=-Wno-error\=implicit-function-declaration
54
+ >
55
+ > checking for BIO_read() in -lcrypto... *** extconf.rb failed ***
56
+ >
57
+ > Could not create Makefile due to some reason, probably lack of necessary
58
+ > libraries and/or headers. Check the mkmf.log file for more details. You may
59
+ > need configuration options.
60
+
61
+ ```sh
62
+ $ gem install puma -- --with-cflags="-fdeclspec"
63
+ ```