radius-spec 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.
data/bin/yard ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'yard' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("yard", "yard")
@@ -0,0 +1,290 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5.0
3
+ Exclude:
4
+ # Exclude generated binstubs
5
+ - 'bin/bundle'
6
+ - 'bin/bundler-travis'
7
+ - 'bin/pry'
8
+ - 'bin/rake'
9
+ - 'bin/rspec'
10
+ - 'bin/rubocop'
11
+ - 'bin/travis'
12
+ - 'bin/yard'
13
+ # Exclude vendored content
14
+ - 'vendor/**/*'
15
+ Include:
16
+ - '**/Brewfile'
17
+ - '**/Rakefile'
18
+
19
+ # Modifiers should be indented as deep as method definitions, or as deep as the
20
+ # class/module keyword, depending on configuration.
21
+ #
22
+ # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
23
+ # SupportedStyles: outdent, indent
24
+ Layout/AccessModifierIndentation:
25
+ EnforcedStyle: outdent
26
+
27
+ # Disabling this until it is fixed to support multi-line block chains using the
28
+ # semantic style.
29
+ #
30
+ # See https://github.com/bbatsov/rubocop/issues/5655
31
+ #
32
+ # Configuration parameters: EnforcedStyleAlignWith.
33
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
34
+ Layout/BlockAlignment:
35
+ Enabled: false
36
+
37
+ # Disabling this until it is fixed to handle multi-line method chains where the
38
+ # first method call is multi-line.
39
+ #
40
+ # See # https://github.com/bbatsov/rubocop/issues/5650
41
+ Layout/ClosingParenthesisIndentation:
42
+ Enabled: false
43
+
44
+ # Disabling this until it is fixed to handle multi-line method chains where the
45
+ # first method call is multi-line.
46
+ #
47
+ # See # https://github.com/bbatsov/rubocop/issues/5650
48
+ #
49
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
50
+ # SupportedStyles: consistent, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
51
+ Layout/FirstParameterIndentation:
52
+ Enabled: false
53
+
54
+ # Often with benchmarking we don't explictly "use" a variable or return value.
55
+ # We simply need to perform the operation which generates said value for the
56
+ # benchmark.
57
+ #
58
+ # Configuration parameters: CheckForMethodsWithNoSideEffects.
59
+ Lint/Void:
60
+ Exclude:
61
+ - 'benchmarks/**/*'
62
+
63
+ # Configuration parameters: CountComments, ExcludedMethods, Max.
64
+ Metrics/BlockLength:
65
+ Exclude:
66
+ - '**/Rakefile'
67
+ - '**/*.rake'
68
+ - 'spec/spec_helper.rb'
69
+ - 'spec/**/*_spec.rb'
70
+
71
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
72
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
73
+ Naming/FileName:
74
+ Exclude:
75
+ - '**/Gemfile'
76
+ - '**/*.gemspec'
77
+ - '**/Brewfile'
78
+
79
+ # `alias` behavior changes on scope. In general we expect the behavior to be
80
+ # that which is defined by `alias_method`.
81
+ #
82
+ # See https://stackoverflow.com/questions/4763121/should-i-use-alias-or-alias-method
83
+ #
84
+ # Configuration parameters: EnforcedStyle.
85
+ # SupportedStyles: prefer_alias, prefer_alias_method
86
+ Style/Alias:
87
+ EnforcedStyle: prefer_alias_method
88
+
89
+ # Use semantic style for blocks:
90
+ # - Prefer `do...end` over `{...}` for procedural blocks.
91
+ # - Prefer `{...}` over `do...end` for functional blocks.
92
+ #
93
+ # When the return value of the method receiving the block is important prefer
94
+ # `{..}` over `do..end`.
95
+ #
96
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods,
97
+ # FunctionalMethods, IgnoredMethods.
98
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining
99
+ Style/BlockDelimiters:
100
+ Details: |
101
+ Use semantic style for blocks:
102
+ - Prefer `do...end` over `{...}` for procedural blocks.
103
+ - Prefer `{...}` over `do...end` for functional blocks.
104
+
105
+ When the return value of the method receiving the block is important prefer
106
+ `{..}` over `do..end`.
107
+ Enabled: true
108
+ EnforcedStyle: semantic
109
+ ProceduralMethods:
110
+ - benchmark
111
+ - bm
112
+ - bmbm
113
+ - measure
114
+ - realtime
115
+ - with_object
116
+ FunctionalMethods:
117
+ - each_with_object
118
+ - git_source
119
+ - let
120
+ - let!
121
+ - new
122
+ - subject
123
+ - tap
124
+ - watch
125
+ IgnoredMethods:
126
+ - lambda
127
+ - proc
128
+ - it
129
+
130
+ # Using `case` instead of an `if` expression when the case condition is empty
131
+ # can be more expressive of intent. Using multiple "cases" informs the reader
132
+ # that all of the conditions are related or coupled in a meaningful way.
133
+ # Multi-branch `if` expressions do not necessarily convey this relation. They
134
+ # may simply be separate branching logic and possibly only flattened for
135
+ # readability.
136
+ Style/EmptyCaseCondition:
137
+ Enabled: false
138
+
139
+ # Always write methods on multiple lines.
140
+ #
141
+ # Configuration parameters: EnforcedStyle.
142
+ # SupportedStyles: compact, expanded
143
+ Style/EmptyMethod:
144
+ EnforcedStyle: expanded
145
+
146
+ # Prefer symbol keys using the 1.9 hash syntax. However, when keys are mixed
147
+ # use a consistent mapping style; which generally means using hash rockets:
148
+ #
149
+ # # bad
150
+ # {:a => 2}
151
+ # {b: 1, :c => 2}
152
+ # {d: 1, 'e' => 2}
153
+ #
154
+ # # good
155
+ # {a: 2, b: 1}
156
+ # {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
157
+ #
158
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
159
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
160
+ Style/HashSyntax:
161
+ Details: |
162
+ Prefer symbol keys using the 1.9 hash syntax. However, when keys are mixed
163
+ use a consistent mapping style; which generally means using hash rockets.
164
+ EnforcedStyle: ruby19_no_mixed_keys
165
+
166
+ # As part of our semantic style we generally use the literal `-> { }` format to
167
+ # indicate this is a function with a return value we care about. As this cop
168
+ # doesn't have a more flexible setting we prefer the literal syntax to the
169
+ # lambda version.
170
+ #
171
+ # Configuration parameters: EnforcedStyle.
172
+ # SupportedStyles: line_count_dependent, lambda, literal
173
+ Style/Lambda:
174
+ Details: |
175
+ As part of our semantic style we generally use the literal `-> { }` format
176
+ to indicate this is a function with a return value we care about. As this
177
+ cop doesn't have a more flexible setting we prefer the literal syntax to
178
+ the lambda version.
179
+ EnforcedStyle: literal
180
+
181
+ # Avoid chaining a method call on a do...end block. This breaks semantic style
182
+ # reducing contextual information.
183
+ Style/MethodCalledOnDoEndBlock:
184
+ Details: "This breaks semantic style reducing contextual information."
185
+ Enabled: true
186
+
187
+ # With semantic style (functional blocks) it's common to chain several methods
188
+ # to avoid creating multiple intermediate local variables. Block length is
189
+ # generally not an issue here as these types of usage tend to produce short (<
190
+ # 5 LOC) multi-line blocks.
191
+ Style/MultilineBlockChain:
192
+ Enabled: false
193
+
194
+ # Context for this cop is too dependent. Often using the numeric comparision is
195
+ # faster. An in certain contexts, Also, depending on the context a numeric
196
+ # comparison is more consistent and can even be more natural:
197
+ #
198
+ # # numeric comparison is more natural and consistent
199
+ # if n < 0
200
+ # elsif n < 5
201
+ # elsif n < 20
202
+ # end
203
+ #
204
+ # Configuration parameters: AutoCorrect, EnforcedStyle.
205
+ # SupportedStyles: predicate, comparison
206
+ Style/NumericPredicate:
207
+ Enabled: false
208
+
209
+ # Prefer slashes for simple expressions. For multi-line use percent literal
210
+ # to support comments and other advanced features.
211
+ #
212
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
213
+ # SupportedStyles: slashes, percent_r, mixed
214
+ Style/RegexpLiteral:
215
+ EnforcedStyle: mixed
216
+
217
+ # We generally prefer double quotes but many generators use single quotes. We
218
+ # don't view the performance difference to be all that much so we don't care
219
+ # if the style is mixed or double quotes are used for static strings.
220
+ #
221
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline.
222
+ # SupportedStyles: single_quotes, double_quotes
223
+ Style/StringLiterals:
224
+ Enabled: false
225
+
226
+ # When ternaries become complex they can be difficult to read due to increased
227
+ # cognative load parsing the expression. Cognative load can increase further
228
+ # when assignment is involved.
229
+ #
230
+ # Configuration parameters: EnforcedStyle, AllowSafeAssignment.
231
+ # SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
232
+ Style/TernaryParentheses:
233
+ AllowSafeAssignment: false
234
+ Details: |
235
+ When ternaries become complex they can be difficult to read due to
236
+ increased cognative load parsing the expression. Cognative load can
237
+ increase further when assignment is involved. To help reduce this cognative
238
+ use parentheses for complex expressions.
239
+ EnforcedStyle: require_parentheses_when_complex
240
+
241
+ # Always use trailing commas for multiline. This makes git diffs easier to read
242
+ # by cutting down on noise when commas are appended.
243
+ #
244
+ # However, specs often multi-line `expect()` for readability with long lines.
245
+ # We don't want to enforce a trailing comma in that case. Ideally, there would
246
+ # be another option to only enforce a consistent comma when there is more than
247
+ # one argument.
248
+ #
249
+ # Configuration parameters: EnforcedStyleForMultiline.
250
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
251
+ Style/TrailingCommaInArguments:
252
+ Details: |
253
+ Always use trailing commas for multiline arguments. This makes git diffs
254
+ easier to read by cutting down on noise when commas are appended. It also
255
+ simplifies adding, removing, and swapping argument orders.
256
+ EnforcedStyleForMultiline: consistent_comma
257
+ Exclude:
258
+ - 'spec/**/*_spec.rb'
259
+
260
+ # Always use trailing commas for multiline. This makes git diffs easier to read
261
+ # by cutting down on noise when commas are appended.
262
+ #
263
+ # Configuration parameters: EnforcedStyleForMultiline.
264
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
265
+ Style/TrailingCommaInArrayLiteral:
266
+ Details: |
267
+ Always use trailing commas for multiline arrays. This makes git diffs
268
+ easier to read by cutting down on noise when commas are appended. It also
269
+ simplifies adding, removing, and re-arranging the elements.
270
+ EnforcedStyleForMultiline: consistent_comma
271
+
272
+ # Always use trailing commas for multiline. This makes git diffs easier to read
273
+ # by cutting down on noise when commas are appended.
274
+ #
275
+ # Configuration parameters: EnforcedStyleForMultiline.
276
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
277
+ Style/TrailingCommaInHashLiteral:
278
+ Details: |
279
+ Always use trailing commas for multiline hashes. This makes git diffs
280
+ easier to read by cutting down on noise when commas are appended. It also
281
+ simplifies adding, removing, and re-arranging the elements.
282
+ EnforcedStyleForMultiline: consistent_comma
283
+
284
+ # When it comes to constants it's safer to place the constant on the right-hand
285
+ # side. With a constant accidental assignment will produce a syntax error.
286
+ #
287
+ # Configuration parameters: EnforcedStyle.
288
+ # SupportedStyles: all_comparison_operators, equality_operators_only
289
+ Style/YodaCondition:
290
+ Enabled: false
@@ -0,0 +1,113 @@
1
+ inherit_mode:
2
+ merge:
3
+ - Exclude
4
+
5
+ inherit_from: common_rubocop.yml
6
+
7
+ # Enable additional Rails cops
8
+ Rails:
9
+ Enabled: true
10
+
11
+ AllCops:
12
+ Exclude:
13
+ - 'bin/puma'
14
+ - 'bin/rails'
15
+ - 'bin/shoryuken'
16
+ - 'bin/sidekiq'
17
+ - 'bin/spring'
18
+ - 'db/schema.rb'
19
+ - 'db/migrate/**/*'
20
+
21
+ # Rails project's are not concerned with API docs normally
22
+ Documentation:
23
+ Enabled: false
24
+
25
+ Metrics/BlockLength:
26
+ Exclude:
27
+ - 'spec/rails_helper.rb'
28
+
29
+ # Rails foreign keys and indexes can get long. We want to ignore our annotation
30
+ # comments which are for these entries.
31
+ #
32
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
33
+ # URISchemes: http, https
34
+ Metrics/LineLength:
35
+ IgnoredPatterns:
36
+ - '\A# fk_rails_'
37
+ - '\A# index_'
38
+
39
+ # As Rails defaults to creating timestamps you need to go out of your way to
40
+ # explicitly have them removed from the table. This cop is almost always a
41
+ # false negative so we're disabling it.
42
+ #
43
+ # Configuration parameters: Include.
44
+ # Include: db/migrate/*.rb
45
+ Rails/CreateTableWithTimestamps:
46
+ Enabled: false
47
+
48
+ # The ActiveSupport monkey patches for `present?` are nearly all defiend as:
49
+ #
50
+ # !blank?
51
+ #
52
+ # For most of use `unless blank?` reads just as easily as `if present?`.
53
+ # Sometimes contextually, it can read better depending on the branch logic and
54
+ # surrounding context. As `if present?` requires an additional negation and
55
+ # method call it is technically slower. In the general case the perf different
56
+ # isn't much but in some cases it matters. Thus, we are not enforcing changing
57
+ # `unless blank?` to `if present?` and are leaving it up to the context to
58
+ # decide which is a better fit.
59
+ #
60
+ # Cop supports --auto-correct.
61
+ # Configuration parameters: NotNilAndNotEmpty, NotBlank, UnlessBlank.
62
+ Rails/Present:
63
+ UnlessBlank: false
64
+
65
+ # We prefer you use the attribute readers and writes. For those special cases
66
+ # where the intent is really to interact with the raw underlying attribute we
67
+ # prefer `read_attribute` and `write_attribute`; as this makes the intent
68
+ # explict. Ideally we'd never use the hash like accessor `[:attr]`.
69
+ #
70
+ # We disable this cop because it is not configurable.
71
+ #
72
+ # Configuration parameters: Include.
73
+ # Include: app/models/**/*.rb
74
+ Rails/ReadWriteAttribute:
75
+ Enabled: false
76
+
77
+ # According to the Rails docs while the following methods skip validations they
78
+ # only update the specified (single) attribute reducing risks. We'd rather not
79
+ # warn for those cases:
80
+ #
81
+ # - decrement!
82
+ # - increment!
83
+ # - touch
84
+ #
85
+ # We are not excluding `toggle!` because it's more likely that a flag may have
86
+ # validations associated with it (or is used by other validations).
87
+ #
88
+ # See:
89
+ #
90
+ # - http://api.rubyonrails.org/classes/ActiveRecord/CounterCache/ClassMethods.html
91
+ # - http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html
92
+ # - http://api.rubyonrails.org/classes/ActiveRecord/Relation.html
93
+ #
94
+ # Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
95
+ Rails/SkipsModelValidations:
96
+ Blacklist:
97
+ - 'decrement_counter'
98
+ - 'increment_counter'
99
+ - 'toggle!'
100
+ - 'update_all'
101
+ - 'update_attribute'
102
+ - 'update_column'
103
+ - 'update_columns'
104
+ - 'update_counters'
105
+
106
+ # Rails uses compact style by default so we're disabling this with a :hammer:
107
+ # for things likely to be generated by Rails (i.e. most things in app).
108
+ #
109
+ # Configuration parameters: AutoCorrect, EnforcedStyle.
110
+ # SupportedStyles: nested, compact
111
+ Style/ClassAndModuleChildren:
112
+ Exclude:
113
+ - 'app/**/*'