jt_tools 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4927652633d2fd267f1f2406edc65c94f2dce1f5df0f5114d6a535a50a24cd43
4
- data.tar.gz: 4cdfbc258f01edf7c8c68b6d9e8dc8afe08e83927e1100077bbec7944d99a444
3
+ metadata.gz: 110820f3c765883cb41d8be9ab041d2378e7bb02d2f0932274f0ea60130e616d
4
+ data.tar.gz: c2507a76f727d277f1e58457ed3f3d47732f48fdc42dc66529c3c65b5311d709
5
5
  SHA512:
6
- metadata.gz: 7ba9a726ab53e969414f0005f8ccf42fe682f127958a4a39047444830020f481015131cd3b5bbe63d99da13581fb77174ae894f92b54e8d2e932a1e3805adabb
7
- data.tar.gz: 67679d017e44950d99ab4bc819edef9983088de1ebb3483e825dc69108fe6b6bbdb403f76f750ab9a98e0dc15c18a8d5b9689965112d943acfdeff4a4a567901
6
+ metadata.gz: 0031d018dd400ecb1762a59e2a3a7907cada91ded4059b166bcd56fc6ab9995ab12caad80822750a269361c617abab31cb80612604bccd9771d112bc186ab445
7
+ data.tar.gz: 8edd821baf1efc31ce37f31930daf29b3cb997cb9ce48db4937060cc77a142e9bea44b8a077ed80d51a52b17993e38fe4b13be717903d58b9653853fc2b81905
@@ -0,0 +1,10 @@
1
+ default_ignores: false
2
+ #fix: true
3
+ format: progress
4
+ parallel: true
5
+ ruby_version: 2.7.1
6
+
7
+ ignore:
8
+ - 'test/**/*':
9
+ - Layout/AlignHash
10
+ - 'tmp/**/*'
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in jt_tools.gemspec
4
4
  gemspec
5
+
6
+ gem "standard"
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/gem_tasks'
4
- require 'rake/testtask'
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
- t.libs << 'test'
8
- t.libs << 'lib'
9
- t.test_files = FileList['test/**/*_test.rb']
7
+ t.libs << "test"
8
+ t.libs << "lib"
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
10
  end
11
11
 
12
12
  task default: :test
data/bin/test CHANGED
@@ -16,11 +16,11 @@ rm -rf test_tmpl
16
16
  # Test installation of missed gems on applying template
17
17
  gem uninstall oj || true
18
18
 
19
- if [[ "TEST_APP_TEMPLATE" == "true" ]]
19
+ if [[ "$TEST_APP_TEMPLATE" == "true" ]]
20
20
  then
21
21
  rails new test_tmpl --quiet --database postgresql
22
22
  cd test_tmpl
23
- rails app:template LOCATION=../template.rb
23
+ rails app:template LOCATION=../../template.rb
24
24
  else
25
25
  rails new test_tmpl --template ../template.rb --quiet --database postgresql
26
26
  cd test_tmpl
@@ -50,7 +50,8 @@ git commit -m 'Adds sample_for_linters'
50
50
  bin/rubocop --fail-level F sample_for_linters.rb
51
51
  bin/pronto run -c HEAD~1 --no-exit-code
52
52
  BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec rails_best_practices --without-color --silent --test .
53
- BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec erblint --config ../../lib/install/.erb-lint.yml --autocorrect .
53
+ # FIXME: https://github.com/Shopify/erb-lint/issues/162
54
+ # BUNDLE_GEMFILE=Gemfile.tools bin/bundle exec erblint --config ../../lib/install/.erb-lint.yml --autocorrect .
54
55
 
55
56
  CIRCLECI=false bin/lint-pr -f text
56
57
 
@@ -1,25 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'jt_tools/version'
5
+ require "jt_tools/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'jt_tools'
8
+ spec.name = "jt_tools"
9
9
  spec.version = JtTools::VERSION
10
- spec.authors = ['Paul Keen']
11
- spec.email = ['pftg@users.noreply.github.com']
10
+ spec.authors = ["Paul Keen"]
11
+ spec.email = ["pftg@users.noreply.github.com"]
12
12
 
13
- spec.summary = 'Setup development scripts to manage code base effectively'
14
- spec.description = 'Helpful scripts to run linters locally and on CI'
15
- spec.homepage = 'https://jtway.co'
16
- spec.license = 'MIT'
13
+ spec.summary = "Setup development scripts to manage code base effectively"
14
+ spec.description = "Helpful scripts to run linters locally and on CI"
15
+ spec.homepage = "https://jtway.co"
16
+ spec.license = "MIT"
17
17
 
18
- spec.metadata['homepage_uri'] = spec.homepage
19
- spec.metadata['source_code_uri'] = 'https://github.com/jetthoughts/jt-tools/'
20
- spec.metadata['changelog_uri'] = 'https://github.com/jetthoughts/jt-tools/'
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "https://github.com/jetthoughts/jt-tools/"
20
+ spec.metadata["changelog_uri"] = "https://github.com/jetthoughts/jt-tools/"
21
21
 
22
- spec.add_dependency 'railties', '>= 4.2'
22
+ spec.add_dependency "railties", ">= 4.2"
23
23
 
24
24
  # Specify which files should be added to the gem when it is released.
25
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
27
27
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
28
  end
29
29
 
30
- spec.require_paths = ['lib']
30
+ spec.require_paths = ["lib"]
31
31
  end
@@ -15,268 +15,37 @@ ij_continuation_indent_size = 2
15
15
  ij_css_align_closing_brace_with_properties = false
16
16
  ij_css_blank_lines_around_nested_selector = 1
17
17
  ij_css_blank_lines_between_blocks = 1
18
- # ij_css_brace_placement = 0
19
- # ij_css_enforce_quotes_on_format = false
20
- # ij_css_hex_color_long_format = false
21
- # ij_css_hex_color_lower_case = false
22
- # ij_css_hex_color_short_format = false
23
- # ij_css_hex_color_upper_case = false
24
18
  ij_css_keep_blank_lines_in_code = 2
25
- # ij_css_keep_indents_on_empty_lines = false
26
- # ij_css_keep_single_line_blocks = false
27
19
  ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
28
- # ij_css_space_after_colon = true
29
- # ij_css_space_before_opening_brace = true
30
- # ij_css_use_double_quotes = true
31
- # ij_css_value_alignment = 0
32
20
 
33
21
  [*.haml]
34
22
  tab_width = 2
35
23
  ij_haml_keep_indents_on_empty_lines = false
36
24
 
37
25
  [*.properties]
38
- # ij_properties_align_group_field_declarations = false
39
26
 
40
27
  [*.scss]
41
28
  ij_continuation_indent_size = 2
42
29
  ij_scss_align_closing_brace_with_properties = false
43
30
  ij_scss_blank_lines_around_nested_selector = 1
44
31
  ij_scss_blank_lines_between_blocks = 1
45
- # ij_scss_brace_placement = 0
46
- # ij_scss_enforce_quotes_on_format = false
47
- # ij_scss_hex_color_long_format = false
48
- # ij_scss_hex_color_lower_case = false
49
- # ij_scss_hex_color_short_format = false
50
- # ij_scss_hex_color_upper_case = false
51
- # ij_scss_keep_blank_lines_in_code = 2
52
- # ij_scss_keep_indents_on_empty_lines = false
53
- # ij_scss_keep_single_line_blocks = false
54
- # ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
55
- # ij_scss_space_after_colon = true
56
- # ij_scss_space_before_opening_brace = true
57
- # ij_scss_use_double_quotes = true
58
- # ij_scss_value_alignment = 0
59
32
 
60
33
  [.editorconfig]
61
- # ij_editorconfig_align_group_field_declarations = true
62
- # ij_editorconfig_space_after_colon = true
63
- # ij_editorconfig_space_after_comma = true
64
- # ij_editorconfig_space_before_colon = false
65
- # ij_editorconfig_space_before_comma = false
66
- # ij_editorconfig_spaces_around_assignment_operators = true
67
34
 
68
35
  [{*.js,*.cjs}]
69
36
  ij_continuation_indent_size = 2
70
- # ij_javascript_align_imports = false
71
- # ij_javascript_align_multiline_array_initializer_expression = false
72
- # ij_javascript_align_multiline_binary_operation = false
73
- # ij_javascript_align_multiline_chained_methods = false
74
- # ij_javascript_align_multiline_extends_list = false
75
- # ij_javascript_align_multiline_for = false
76
- # ij_javascript_align_multiline_parameters = false
77
- # ij_javascript_align_multiline_parameters_in_calls = false
78
- # ij_javascript_align_multiline_ternary_operation = false
79
- # ij_javascript_align_object_properties = 0
80
- # ij_javascript_align_union_types = false
81
- # ij_javascript_align_var_statements = 0
82
- # ij_javascript_array_initializer_new_line_after_left_brace = false
83
- # ij_javascript_array_initializer_right_brace_on_new_line = false
84
- # ij_javascript_array_initializer_wrap = off
85
- # ij_javascript_assignment_wrap = off
86
- # ij_javascript_binary_operation_sign_on_next_line = false
87
- # ij_javascript_binary_operation_wrap = off
88
- # ij_javascript_blacklist_imports = rxjs/Rx,node_modules/**/*,@angular/material,@angular/material/typings/**
89
- # ij_javascript_blank_lines_after_imports = 1
90
- # ij_javascript_blank_lines_around_class = 1
91
- # ij_javascript_blank_lines_around_field = 0
92
- # ij_javascript_blank_lines_around_function = 1
93
- # ij_javascript_blank_lines_around_method = 1
94
- # ij_javascript_block_brace_style = end_of_line
95
- # ij_javascript_call_parameters_new_line_after_left_paren = false
96
- # ij_javascript_call_parameters_right_paren_on_new_line = false
97
- # ij_javascript_call_parameters_wrap = off
98
- # ij_javascript_catch_on_new_line = false
99
- # ij_javascript_chained_call_dot_on_new_line = true
100
- # ij_javascript_class_brace_style = end_of_line
101
- # ij_javascript_comma_on_new_line = false
102
- # ij_javascript_do_while_brace_force = never
103
- # ij_javascript_else_on_new_line = false
104
- # ij_javascript_enforce_trailing_comma = keep
105
- # ij_javascript_extends_keyword_wrap = off
106
- # ij_javascript_extends_list_wrap = off
107
- # ij_javascript_field_prefix = _
108
- # ij_javascript_file_name_style = relaxed
109
- # ij_javascript_finally_on_new_line = false
110
- # ij_javascript_for_brace_force = never
111
- # ij_javascript_for_statement_new_line_after_left_paren = false
112
- # ij_javascript_for_statement_right_paren_on_new_line = false
113
- # ij_javascript_for_statement_wrap = off
114
- # ij_javascript_force_quote_style = true
115
- # ij_javascript_force_semicolon_style = true
116
- # ij_javascript_function_expression_brace_style = end_of_line
117
- # ij_javascript_if_brace_force = never
118
- # ij_javascript_import_merge_members = global
119
- # ij_javascript_import_prefer_absolute_path = global
120
- # ij_javascript_import_sort_members = true
121
- # ij_javascript_import_sort_module_name = false
122
- # ij_javascript_import_use_node_resolution = true
123
- # ij_javascript_imports_wrap = on_every_item
124
- # ij_javascript_indent_case_from_switch = true
125
- # ij_javascript_indent_chained_calls = true
126
- # ij_javascript_indent_package_children = 0
127
- # ij_javascript_jsx_attribute_value = braces
128
- # ij_javascript_keep_blank_lines_in_code = 1
129
- # ij_javascript_keep_first_column_comment = true
130
- # ij_javascript_keep_indents_on_empty_lines = false
131
- # ij_javascript_keep_line_breaks = true
132
- # ij_javascript_keep_simple_blocks_in_one_line = true
133
- # ij_javascript_keep_simple_methods_in_one_line = true
134
- # ij_javascript_line_comment_add_space = true
135
- # ij_javascript_line_comment_at_first_column = false
136
- # ij_javascript_method_brace_style = end_of_line
137
- # ij_javascript_method_call_chain_wrap = off
138
- # ij_javascript_method_parameters_new_line_after_left_paren = false
139
- # ij_javascript_method_parameters_right_paren_on_new_line = false
140
- # ij_javascript_method_parameters_wrap = off
141
- # ij_javascript_object_literal_wrap = on_every_item
142
- # ij_javascript_parentheses_expression_new_line_after_left_paren = false
143
- # ij_javascript_parentheses_expression_right_paren_on_new_line = false
144
- # ij_javascript_place_assignment_sign_on_next_line = false
145
- # ij_javascript_prefer_as_type_cast = false
146
- # ij_javascript_prefer_parameters_wrap = false
147
- # ij_javascript_reformat_c_style_comments = false
148
- # ij_javascript_space_after_colon = true
149
- # ij_javascript_space_after_comma = true
150
- # ij_javascript_space_after_dots_in_rest_parameter = false
151
- # ij_javascript_space_after_generator_mult = true
152
- # ij_javascript_space_after_property_colon = true
153
- # ij_javascript_space_after_quest = true
154
- # ij_javascript_space_after_type_colon = true
155
- # ij_javascript_space_after_unary_not = false
156
- # ij_javascript_space_before_async_arrow_lparen = true
157
- # ij_javascript_space_before_catch_keyword = true
158
- # ij_javascript_space_before_catch_left_brace = true
159
- # ij_javascript_space_before_catch_parentheses = true
160
- # ij_javascript_space_before_class_lbrace = true
161
- # ij_javascript_space_before_class_left_brace = true
162
- # ij_javascript_space_before_colon = true
163
- # ij_javascript_space_before_comma = false
164
- # ij_javascript_space_before_do_left_brace = true
165
- # ij_javascript_space_before_else_keyword = true
166
- # ij_javascript_space_before_else_left_brace = true
167
- # ij_javascript_space_before_finally_keyword = true
168
- # ij_javascript_space_before_finally_left_brace = true
169
- # ij_javascript_space_before_for_left_brace = true
170
- # ij_javascript_space_before_for_parentheses = true
171
- # ij_javascript_space_before_for_semicolon = false
172
- # ij_javascript_space_before_function_left_parenth = true
173
- # ij_javascript_space_before_generator_mult = true
174
- # ij_javascript_space_before_if_left_brace = true
175
- # ij_javascript_space_before_if_parentheses = true
176
- # ij_javascript_space_before_method_call_parentheses = false
177
- # ij_javascript_space_before_method_left_brace = true
178
- # ij_javascript_space_before_method_parentheses = true
179
- # ij_javascript_space_before_property_colon = false
180
- # ij_javascript_space_before_quest = true
181
- # ij_javascript_space_before_switch_left_brace = true
182
- # ij_javascript_space_before_switch_parentheses = true
183
- # ij_javascript_space_before_try_left_brace = true
184
- # ij_javascript_space_before_type_colon = false
185
- # ij_javascript_space_before_unary_not = false
186
- # ij_javascript_space_before_while_keyword = true
187
- # ij_javascript_space_before_while_left_brace = true
188
- # ij_javascript_space_before_while_parentheses = true
189
- # ij_javascript_spaces_around_additive_operators = true
190
- # ij_javascript_spaces_around_arrow_function_operator = true
191
- # ij_javascript_spaces_around_assignment_operators = true
192
- # ij_javascript_spaces_around_bitwise_operators = true
193
- # ij_javascript_spaces_around_equality_operators = true
194
- # ij_javascript_spaces_around_logical_operators = true
195
- # ij_javascript_spaces_around_multiplicative_operators = true
196
- # ij_javascript_spaces_around_relational_operators = true
197
- # ij_javascript_spaces_around_shift_operators = true
198
- # ij_javascript_spaces_around_unary_operator = false
199
- # ij_javascript_spaces_within_array_initializer_brackets = false
200
- # ij_javascript_spaces_within_brackets = false
201
- # ij_javascript_spaces_within_catch_parentheses = false
202
- # ij_javascript_spaces_within_for_parentheses = false
203
- # ij_javascript_spaces_within_if_parentheses = false
204
- # ij_javascript_spaces_within_imports = true
205
- # ij_javascript_spaces_within_interpolation_expressions = false
206
- # ij_javascript_spaces_within_method_call_parentheses = false
207
- # ij_javascript_spaces_within_method_parentheses = false
208
- # ij_javascript_spaces_within_object_literal_braces = true
209
- # ij_javascript_spaces_within_object_type_braces = true
210
- # ij_javascript_spaces_within_parentheses = false
211
- # ij_javascript_spaces_within_switch_parentheses = false
212
- # ij_javascript_spaces_within_type_assertion = false
213
- # ij_javascript_spaces_within_union_types = true
214
- # ij_javascript_spaces_within_while_parentheses = false
215
- # ij_javascript_special_else_if_treatment = true
216
- # ij_javascript_ternary_operation_signs_on_next_line = true
217
- # ij_javascript_ternary_operation_wrap = off
218
- # ij_javascript_union_types_wrap = on_every_item
219
- # ij_javascript_use_chained_calls_group_indents = false
220
- # ij_javascript_use_double_quotes = false
221
- # ij_javascript_use_explicit_js_extension = global
222
- # ij_javascript_use_path_mapping = always
223
- # ij_javascript_use_public_modifier = false
224
- # ij_javascript_use_semicolon_after_statement = false
225
- # ij_javascript_var_declaration_wrap = normal
226
- # ij_javascript_while_brace_force = never
227
- # ij_javascript_while_on_new_line = false
228
- # ij_javascript_wrap_comments = false
229
37
 
230
38
  [{*.sht,*.html,*.shtm,*.shtml,*.htm}]
231
39
  ij_continuation_indent_size = 2
232
- # ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
233
- # ij_html_align_attributes = true
234
- # ij_html_align_text = false
235
- # ij_html_attribute_wrap = normal
236
- # ij_html_block_comment_at_first_column = true
237
- # ij_html_do_not_align_children_of_min_lines = 0
238
- # ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
239
- # ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot,script,style
240
- # ij_html_enforce_quotes = false
241
- # ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
242
- # ij_html_keep_blank_lines = 2
243
- # ij_html_keep_indents_on_empty_lines = false
244
- # ij_html_keep_line_breaks = true
245
- # ij_html_keep_line_breaks_in_text = true
246
- # ij_html_keep_whitespaces = false
247
- # ij_html_keep_whitespaces_inside = span,pre,textarea
248
- # ij_html_line_comment_at_first_column = true
249
- # ij_html_new_line_after_last_attribute = never
250
- # ij_html_new_line_before_first_attribute = never
251
- # ij_html_quote_style = double
252
- # ij_html_remove_new_line_before_tags = br
253
- # ij_html_space_after_tag_name = false
254
- # ij_html_space_around_equality_in_attribute = false
255
- # ij_html_space_inside_empty_tag = true
256
- # ij_html_text_wrap = normal
257
40
 
258
41
  [{*.xslt,*.rng,*.ant,*.xsl,*.xsd,*.xul,*.jhm,*.xml,*.tld,*.fxml,*.wsdl,*.jrxml,*.jnlp}]
259
42
  tab_width = 2
260
- # ij_xml_block_comment_at_first_column = true
261
- # ij_xml_keep_indents_on_empty_lines = false
262
- # ij_xml_line_comment_at_first_column = true
263
43
 
264
44
  [{*.yml,*.yaml}]
265
- # ij_yaml_keep_indents_on_empty_lines = false
266
- # ij_yaml_keep_line_breaks = true
45
+ tab_width = 2
267
46
 
268
47
  [{.babelrc,.stylelintrc,.eslintrc,jest.config,.resultset.json.lock,bowerrc,*.json,*.jsb3,*.jsb2}]
269
48
  tab_width = 2
270
- # ij_json_keep_blank_lines_in_code = 0
271
- # ij_json_keep_indents_on_empty_lines = false
272
- # ij_json_keep_line_breaks = true
273
- # ij_json_space_after_colon = true
274
- # ij_json_space_after_comma = true
275
- # ij_json_space_before_colon = true
276
- # ij_json_space_before_comma = false
277
- # ij_json_spaces_within_braces = false
278
- # ij_json_spaces_within_brackets = false
279
- # ij_json_wrap_long_lines = false
280
49
 
281
50
  [{Podfile,Brewfile,cucumber,yarn,spork,Gemfile.tools,rake,.simplecov,rcov,rails,spec,capfile,gemfile,rakefile,guardfile,isolate,vagrantfile,*.gemspec,*.jbuilder,*.thor,*.rbw,*.ru,*.rb,*.rake}]
282
51
  ij_ruby_align_group_field_declarations = false
@@ -10,17 +10,17 @@ linters:
10
10
  - .rubocop.yml
11
11
  Layout/InitialIndentation:
12
12
  Enabled: false
13
+ Layout/LineLength:
14
+ Enabled: false
13
15
  Layout/TrailingEmptyLines:
14
16
  Enabled: false
15
17
  Layout/TrailingWhitespace:
16
18
  Enabled: false
17
- Naming/FileName:
18
- Enabled: false
19
- Style/FrozenStringLiteralComment:
20
- Enabled: false
21
- Layout/LineLength:
22
- Enabled: false
23
19
  Lint/UselessAssignment:
24
20
  Enabled: false
21
+ Naming/FileName:
22
+ Enabled: false
25
23
  Rails/OutputSafety:
26
24
  Enabled: false
25
+ Style/FrozenStringLiteralComment:
26
+ Enabled: false
@@ -9,6 +9,10 @@ AllCops:
9
9
  - 'db/migrate/**/*'
10
10
  - 'db/schema.rb'
11
11
 
12
+ Layout/DotPosition:
13
+ Enabled: true
14
+ EnforcedStyle: leading
15
+
12
16
  Layout/EmptyLinesAroundAttributeAccessor:
13
17
  Enabled: true
14
18
 
@@ -115,6 +119,8 @@ Style/StabbyLambdaParentheses:
115
119
  EnforcedStyle: require_no_parentheses
116
120
 
117
121
  Style/StringLiterals:
122
+ Enabled: true
123
+ EnforcedStyle: double_quotes
118
124
  Exclude:
119
125
  - 'db/schema.rb'
120
126
 
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if defined?(Spring) && ENV['DISABLE_SPRING'].nil?
4
- puts '**** NO COVERAGE FOR YOU! ****'
5
- puts 'Please disable Spring to get COVERAGE by `DISABLE_SPRING=1 COVERAGE=1 bin/rspec`'
3
+ if defined?(Spring) && ENV["DISABLE_SPRING"].nil?
4
+ puts "**** NO COVERAGE FOR YOU! ****"
5
+ puts "Please disable Spring to get COVERAGE by `DISABLE_SPRING=1 COVERAGE=1 bin/rspec`"
6
6
  else
7
- SimpleCov.start 'rails' do
7
+ SimpleCov.start "rails" do
8
8
  add_filter %w[app/views bin spec test]
9
9
 
10
10
  maximum_coverage_drop 0.5
11
11
  end
12
12
 
13
- if ENV['CODECOV_TOKEN']
14
- require 'codecov'
13
+ if ENV["CODECOV_TOKEN"]
14
+ require "codecov"
15
15
  SimpleCov.formatter = SimpleCov::Formatter::Codecov
16
16
  end
17
17
  end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- tap 'caskroom/cask'
4
- cask_args appdir: '/Applications'
3
+ tap "caskroom/cask"
4
+ cask_args appdir: "/Applications"
5
5
 
6
- tap 'heroku/brew'
6
+ tap "heroku/brew"
7
7
 
8
- brew 'circleci'
9
- brew 'graphicsmagick' # For ActiveStorage
10
- brew 'heroku'
11
- brew 'hub' # For creating Pull Request from CLI
12
- brew 'postgresql'
13
- brew 'rbenv'
14
- brew 'ruby-build'
15
- brew 'vips' # For ActiveStorage
16
- brew 'yamllint' # For Linters
17
- brew 'yarn'
8
+ brew "circleci"
9
+ brew "graphicsmagick" # For ActiveStorage
10
+ brew "heroku"
11
+ brew "hub" # For creating Pull Request from CLI
12
+ brew "postgresql"
13
+ brew "rbenv"
14
+ brew "ruby-build"
15
+ brew "vips" # For ActiveStorage
16
+ brew "yamllint" # For Linters
17
+ brew "yarn"
@@ -20,6 +20,8 @@ group :tools do
20
20
  gem 'pronto-rubocop', require: false
21
21
  gem 'pronto-yamllint', require: false
22
22
 
23
+ # gem 'rubocop-minitest', require: false
23
24
  gem 'rubocop-performance', require: false
24
25
  gem 'rubocop-rails', require: false
26
+ # gem 'rubocop-rspec', require: false
25
27
  end
@@ -6,6 +6,7 @@
6
6
  "env": {
7
7
  "BUNDLE_WITHOUT": "development:test:production",
8
8
  "DISABLE_DATABASE_ENVIRONMENT_CHECK": "1",
9
+ "JEMALLOC_ENABLED": "true",
9
10
  "LANG": "en_US.UTF-8",
10
11
  "MALLOC_ARENA_MAX": "2",
11
12
  "NODE_ENV": "production",
@@ -38,6 +39,9 @@
38
39
  "redistogo:nano"
39
40
  ],
40
41
  "buildpacks": [
42
+ {
43
+ "url": "https://github.com/gaffneyc/heroku-buildpack-jemalloc.git"
44
+ },
41
45
  {
42
46
  "url": "heroku/nodejs"
43
47
  },
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'jt_tools/version'
3
+ require "jt_tools/version"
4
4
 
5
- require 'jt_tools/railtie' if defined?(Rails)
5
+ require "jt_tools/railtie" if defined?(Rails)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/railtie'
3
+ require "rails/railtie"
4
4
 
5
5
  class JtToolsRailtie < Rails::Railtie
6
6
  rake_tasks do
7
- load 'tasks/install.rake'
7
+ load "tasks/install.rake"
8
8
  end
9
9
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JtTools
4
- VERSION = '0.0.6'
4
+ VERSION = "0.0.7"
5
5
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- install_template_path = File.expand_path('../../template.rb', __dir__).freeze
4
- bin_path = ENV['BUNDLE_BIN'] || './bin'
3
+ install_template_path = File.expand_path("../../template.rb", __dir__).freeze
4
+ bin_path = ENV["BUNDLE_BIN"] || "./bin"
5
5
 
6
6
  namespace :jt_tools do
7
- desc 'Install jt-tools in this application'
7
+ desc "Install jt-tools in this application"
8
8
  task install: :environment do
9
9
  exec "#{RbConfig.ruby} #{bin_path}/rails app:template LOCATION=#{install_template_path}"
10
10
  end
@@ -1,18 +1,17 @@
1
-
2
- require 'json'
1
+ require "json"
3
2
 
4
3
  EXTRACT_DEPENDENCY_NAME = /"?(.+?)@.+?"?(?:,\s+|\Z)/.freeze
5
4
  EXTRACT_DEPENDENCY_DETAILS = /(^((?!= ).*?):\n.*?(?:\n\n|\Z))/m.freeze
6
5
 
7
6
  def direct_dependencies_names
8
- package_json = JSON.parse(File.open('package.json').read)
9
- direct_dependencies = package_json.fetch_values('dependencies', 'devDependencies', 'peerDependencies') { }
7
+ package_json = JSON.parse(File.open("package.json").read)
8
+ direct_dependencies = package_json.fetch_values("dependencies", "devDependencies", "peerDependencies") {}
10
9
  direct_dependencies.compact.inject([]) { |memo, v| memo.concat(v.keys) }
11
10
  end
12
11
 
13
12
  @dependencies = direct_dependencies_names
14
13
 
15
- yarn_lock_content = File.open('yarn.lock').read
14
+ yarn_lock_content = File.open("yarn.lock").read
16
15
  yarn_lock_content.scan(EXTRACT_DEPENDENCY_DETAILS).each do |dependency_block|
17
16
  direct_dep = @dependencies.include?(dependency_block[1].match(EXTRACT_DEPENDENCY_NAME).to_a[1])
18
17
  puts dependency_block[0] if direct_dep
@@ -7,17 +7,17 @@
7
7
  # In that case, use `git clone` to download them to a local temporary dir.
8
8
  def add_template_repository_to_source_path
9
9
  if __FILE__.match?(%r{\Ahttps?://})
10
- require 'shellwords'
11
- require 'tmpdir'
10
+ require "shellwords"
11
+ require "tmpdir"
12
12
 
13
- source_paths.unshift(temp_dir = Dir.mktmpdir('jt_tools-'))
13
+ source_paths.unshift(temp_dir = Dir.mktmpdir("jt_tools-"))
14
14
  at_exit { FileUtils.remove_entry(temp_dir) }
15
15
  git clone: [
16
- '--quiet',
17
- 'https://github.com/jetthoughts/jt_tools.git',
16
+ "--quiet",
17
+ "https://github.com/jetthoughts/jt_tools.git",
18
18
  temp_dir
19
19
  ].map { |args| Shellwords.escape(args) }
20
- .join(' ')
20
+ .join(" ")
21
21
 
22
22
  if (branch = __FILE__[%r{jt_tools/(.+)/template.rb}, 1])
23
23
  Dir.chdir(temp_dir) { git checkout: branch }
@@ -29,131 +29,134 @@ end
29
29
 
30
30
  add_template_repository_to_source_path
31
31
 
32
- say '=> Copying binstubs'
33
- directory 'lib/install/bin', 'bin'
32
+ say "=> Copying binstubs"
33
+ directory "lib/install/bin", "bin"
34
34
 
35
- chmod 'bin', 0o755 & ~File.umask, verbose: false
35
+ chmod "bin", 0o755 & ~File.umask, verbose: false
36
36
 
37
- say '=> Copying tools gemfile'
38
- copy_file 'lib/install/Gemfile.tools', 'Gemfile.tools'
37
+ say "=> Copying tools gemfile"
38
+ copy_file "lib/install/Gemfile.tools", "Gemfile.tools"
39
39
 
40
- run 'yarn add -D eslint jest-junit'
40
+ run "yarn add -D eslint jest-junit"
41
41
 
42
- say 'Copying lint configurations'
43
- copy_file 'lib/install/.better-html.yml', '.better-html.yml'
44
- copy_file 'lib/install/.erb-lint.yml', '.erb-lint.yml'
45
- copy_file 'lib/install/.eslintrc.js', '.eslintrc.js'
46
- copy_file 'lib/install/.pronto.yml', '.pronto.yml'
47
- copy_file 'lib/install/.pronto_eslint_npm.yml', '.pronto_eslint_npm.yml'
48
- copy_file 'lib/install/.rubocop.yml', '.rubocop.yml'
49
- copy_file 'lib/install/.yamllint.yml', '.yamllint.yml'
50
- copy_file 'lib/install/.reek.yml', '.reek.yml'
51
- copy_file 'lib/install/config/rails_best_practices.yml', 'config/rails_best_practices.yml'
52
- copy_file 'lib/install/.editorconfig', '.editorconfig'
42
+ say "Copying lint configurations"
43
+ copy_file "lib/install/.better-html.yml", ".better-html.yml"
44
+ copy_file "lib/install/.erb-lint.yml", ".erb-lint.yml"
45
+ copy_file "lib/install/.eslintrc.js", ".eslintrc.js"
46
+ copy_file "lib/install/.pronto.yml", ".pronto.yml"
47
+ copy_file "lib/install/.pronto_eslint_npm.yml", ".pronto_eslint_npm.yml"
48
+ copy_file "lib/install/.rubocop.yml", ".rubocop.yml"
49
+ copy_file "lib/install/.yamllint.yml", ".yamllint.yml"
50
+ copy_file "lib/install/.reek.yml", ".reek.yml"
51
+ copy_file "lib/install/config/rails_best_practices.yml", "config/rails_best_practices.yml"
52
+ copy_file "lib/install/.editorconfig", ".editorconfig"
53
53
 
54
- say '=> Copying services configuration'
55
- copy_file 'lib/install/.simplecov', '.simplecov'
56
- copy_file 'lib/install/codecov.yml', 'codecov.yml'
54
+ say "=> Copying services configuration"
55
+ copy_file "lib/install/.simplecov", ".simplecov"
56
+ copy_file "lib/install/codecov.yml", "codecov.yml"
57
57
 
58
-
59
- say '=> Adds service client API gems'
58
+ say "=> Adds service client API gems"
60
59
 
61
60
  gem_group :test do
62
- gem 'simplecov', require: false, group: :test
63
- gem 'codecov', require: false, group: :test
61
+ gem "simplecov", require: false, group: :test
62
+ gem "codecov", require: false, group: :test
64
63
  end
65
64
 
66
- gem 'oj'
65
+ gem "oj"
67
66
 
68
67
  gem_group :production, :staging do
69
- gem 'dalli'
70
- gem 'r7insight'
71
- gem 'rollbar'
68
+ gem "dalli"
69
+ gem "r7insight"
70
+ gem "rollbar"
72
71
  end
73
72
 
74
- directory 'lib/install/.circleci', '.circleci'
73
+ directory "lib/install/.circleci", ".circleci"
75
74
 
76
- if File.read('Gemfile').include? 'rspec'
77
- gem 'rspec_junit_formatter', require: false, group: :test
75
+ if File.read("Gemfile").include? "rspec"
76
+ gem "rspec_junit_formatter", require: false, group: :test
78
77
  insert_into_file(
79
- 'spec/spec_helper.rb',
78
+ "spec/spec_helper.rb",
80
79
  "require 'simplecov' if ENV['COVERAGE']\n",
81
80
  after: /\A/
82
81
  )
83
82
  insert_into_file(
84
- '.circleci/config.yml',
85
- "\n" + ' - run: bin/rspec --format RspecJunitFormatter --out tmp/reports/rspec-results.xml --format progress',
86
- after: '# rails test'
83
+ ".circleci/config.yml",
84
+ "\n" + " - run: bin/rspec --format RspecJunitFormatter --out tmp/reports/rspec-results.xml --format progress",
85
+ after: "# rails test"
87
86
  )
88
87
  else
89
- gem 'minitest-ci', require: false, group: :test
88
+ gem "minitest-ci", require: false, group: :test
90
89
  insert_into_file(
91
- 'test/test_helper.rb',
90
+ "test/test_helper.rb",
92
91
  "require 'simplecov' if ENV['COVERAGE']\n",
93
92
  after: /\A/
94
93
  )
95
94
  insert_into_file(
96
- '.circleci/config.yml',
95
+ ".circleci/config.yml",
97
96
  "\n" + ' - run: bin/rails test "test/**/*_test.rb"',
98
- after: '# rails test'
97
+ after: "# rails test"
99
98
  )
99
+
100
+ gsub_file "test/test_helper.rb",
101
+ "parallelize(workers: :number_of_processors)",
102
+ "parallelize(workers: :number_of_processors) unless ENV['COVERAGE']"
100
103
  end
101
104
 
102
- directory 'lib/install/.dependabot', '.dependabot'
105
+ directory "lib/install/.dependabot", ".dependabot"
103
106
 
104
- say '=> Copying heroku configuration'
105
- copy_file 'lib/install/app.json', 'app.json'
106
- copy_file 'lib/install/Procfile', 'Procfile'
107
+ say "=> Copying heroku configuration"
108
+ copy_file "lib/install/app.json", "app.json"
109
+ copy_file "lib/install/Procfile", "Procfile"
107
110
 
108
- say '=> Install Brew dependencies'
109
- copy_file 'lib/install/Brewfile', 'Brewfile'
111
+ say "=> Install Brew dependencies"
112
+ copy_file "lib/install/Brewfile", "Brewfile"
110
113
 
111
- say 'Setup git hooks'
112
- directory 'lib/install/bin/git-hooks', 'bin/git-hooks'
114
+ say "Setup git hooks"
115
+ directory "lib/install/bin/git-hooks", "bin/git-hooks"
113
116
 
114
- require 'bundler'
117
+ require "bundler"
115
118
  Bundler.with_original_env do
116
- say '=> Install tools'
117
- run 'bin/tools-setup'
119
+ say "=> Install tools"
120
+ run "bin/tools-setup"
118
121
 
119
- say '=> Generate binstubs for linters'
120
- run 'BUNDLE_GEMFILE=Gemfile.tools bundle binstub --force pronto'
121
- run 'BUNDLE_GEMFILE=Gemfile.tools bundle binstub --force rubocop'
122
+ say "=> Generate binstubs for linters"
123
+ run "BUNDLE_GEMFILE=Gemfile.tools bundle binstub --force pronto"
124
+ run "BUNDLE_GEMFILE=Gemfile.tools bundle binstub --force rubocop"
122
125
  end
123
126
 
124
- say '=> Set git hooks'
125
- run 'git config core.hooksPath ./bin/git-hooks'
127
+ say "=> Set git hooks"
128
+ run "git config core.hooksPath ./bin/git-hooks"
129
+ say "=> Install all new dependencies"
126
130
 
127
- say '=> Install all new dependencies'
128
131
  run <<~BREW_INSTALL
129
132
  hash brew 2> /dev/null \
130
133
  && (brew bundle check || brew bundle install) \
131
134
  || echo "Please install Homebrew: https://brew.sh/"
132
135
  BREW_INSTALL
133
136
 
134
- say '=> Update development config'
135
- uncomment_lines 'config/environments/development.rb', /config\.file_watcher = ActiveSupport::EventedFileUpdateChecker/
137
+ say "=> Update development config"
138
+ uncomment_lines "config/environments/development.rb", /config\.file_watcher = ActiveSupport::EventedFileUpdateChecker/
136
139
 
137
- say '=> Set up R7Insight'
140
+ say "=> Set up R7Insight"
138
141
  r7insight_config = <<-CODE
139
142
  if ENV['R7INSIGHT_TOKEN'].present?
140
143
  Rails.logger = R7Insight.new(ENV['R7INSIGHT_TOKEN'], ENV['R7INSIGHT_REGION'])
141
144
  end
142
145
  CODE
143
- insert_into_file 'config/environments/production.rb',
144
- "require 'r7_insight.rb'" + "\n\n",
145
- before: 'Rails.application.configure do'
146
- environment(r7insight_config, env: 'production')
147
- if File.exist?('config/environments/staging.rb')
148
- insert_into_file 'config/environments/staging.rb',
149
- "require 'r7_insight.rb'" + "\n\n",
150
- before: 'Rails.application.configure do'
151
- environment(r7insight_config, env: 'staging')
146
+ insert_into_file "config/environments/production.rb",
147
+ "require 'r7_insight.rb'" + "\n\n",
148
+ before: "Rails.application.configure do"
149
+ environment(r7insight_config, env: "production")
150
+ if File.exist?("config/environments/staging.rb")
151
+ insert_into_file "config/environments/staging.rb",
152
+ "require 'r7_insight.rb'" + "\n\n",
153
+ before: "Rails.application.configure do"
154
+ environment(r7insight_config, env: "staging")
152
155
  end
153
156
 
154
- gem 'connection_pool'
157
+ gem "connection_pool"
155
158
 
156
- say '=> Set up Memcachier'
159
+ say "=> Set up Memcachier"
157
160
  memcachier_config = <<-CODE
158
161
  if ENV["MEMCACHIER_SERVERS"]
159
162
  config.cache_store = :mem_cache_store,
@@ -165,31 +168,32 @@ memcachier_config = <<-CODE
165
168
  end
166
169
 
167
170
  CODE
168
- environment(memcachier_config, env: 'production')
169
- if File.exist?('config/environments/staging.rb')
170
- environment(memcachier_config, env: 'staging')
171
+ environment(memcachier_config, env: "production")
172
+ if File.exist?("config/environments/staging.rb")
173
+ environment(memcachier_config, env: "staging")
171
174
  end
172
175
 
176
+ Bundler.with_original_env do
177
+ say "=> Setup default bundle config"
178
+ run "bundle config jobs 4"
179
+ run "bundle config retry 3"
173
180
 
174
- after_bundle do
175
- say '=> Setup default bundle config'
176
- run 'bundle config jobs 4'
177
- run 'bundle config retry 3'
181
+ run "bundle"
178
182
  end
179
183
 
180
- say '**************************************************************************'
181
- say '**************************************************************************'
182
- say ''
183
- say '1. Recommended Heroku Addons: Mailtrap, Rollbar, Cloudinary'
184
- say ''
185
- say '2. Setup Git Hooks to auto-check code and cleanup staled branches:'
186
- say '$ `git config core.hooksPath bin/git-hooks`'
187
- say ''
188
- say '3. Please, set CODECOV_TOKEN, GITHUB_TOKEN and PRONTO_GITHUB_ACCESS_TOKEN'
189
- say 'environment variables in CircleCI and your local env'
190
- say ''
191
- say ' For code coverage report aggregator, running code static analysis'
192
- say 'and auto-update of the tools.'
193
- say ''
194
- say '**************************************************************************'
195
- say '**************************************************************************'
184
+ say "**************************************************************************"
185
+ say "**************************************************************************"
186
+ say ""
187
+ say "1. Recommended Heroku Addons: Mailtrap, Rollbar, Cloudinary"
188
+ say ""
189
+ say "2. Setup Git Hooks to auto-check code and cleanup staled branches:"
190
+ say "$ `git config core.hooksPath bin/git-hooks`"
191
+ say ""
192
+ say "3. Please, set CODECOV_TOKEN, GITHUB_TOKEN and PRONTO_GITHUB_ACCESS_TOKEN"
193
+ say "environment variables in CircleCI and your local env"
194
+ say ""
195
+ say " For code coverage report aggregator, running code static analysis"
196
+ say "and auto-update of the tools."
197
+ say ""
198
+ say "**************************************************************************"
199
+ say "**************************************************************************"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jt_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Keen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-22 00:00:00.000000000 Z
11
+ date: 2020-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -37,6 +37,7 @@ files:
37
37
  - ".github/ISSUE_TEMPLATE/custom.md"
38
38
  - ".github/ISSUE_TEMPLATE/feature_request.md"
39
39
  - ".gitignore"
40
+ - ".standard.yml"
40
41
  - Gemfile
41
42
  - LICENSE
42
43
  - LICENSE.txt