rufo 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +4 -0
- data/.rufo +0 -22
- data/.travis.yml +4 -4
- data/CHANGELOG.md +51 -0
- data/Guardfile +5 -0
- data/README.md +39 -70
- data/docs/developing-rufo.md +17 -0
- data/docs/releasing-a-gem.md +17 -0
- data/docs/settings.md +219 -0
- data/lib/rufo.rb +1 -1
- data/lib/rufo/command.rb +64 -20
- data/lib/rufo/dot_file.rb +26 -0
- data/lib/rufo/formatter.rb +137 -289
- data/lib/rufo/settings.rb +27 -0
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +1 -0
- metadata +24 -4
- data/lib/rufo/formatter/settings.rb +0 -198
@@ -0,0 +1,27 @@
|
|
1
|
+
module Rufo::Settings
|
2
|
+
OPTIONS = {
|
3
|
+
parens_in_def: [:yes, :dynamic],
|
4
|
+
align_case_when: [false, true],
|
5
|
+
align_chained_calls: [false, true],
|
6
|
+
trailing_commas: [true, false],
|
7
|
+
}
|
8
|
+
|
9
|
+
attr_accessor *OPTIONS.keys
|
10
|
+
|
11
|
+
def init_settings(options)
|
12
|
+
OPTIONS.each do |name, valid_options|
|
13
|
+
default = valid_options.first
|
14
|
+
value = options.fetch(name, default)
|
15
|
+
unless valid_options.include?(value)
|
16
|
+
$stderr.puts "Invalid value for #{name}: #{value.inspect}. Valid " \
|
17
|
+
"values are: #{valid_options.map(&:inspect).join(', ')}"
|
18
|
+
value = default
|
19
|
+
end
|
20
|
+
self.public_send("#{name}=", value)
|
21
|
+
end
|
22
|
+
diff = options.keys - OPTIONS.keys
|
23
|
+
diff.each do |key|
|
24
|
+
$stderr.puts "Invalid config option=#{key}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rufo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ary Borenszweig
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.0'
|
55
69
|
description: Fast and unobtrusive Ruby code formatter
|
56
70
|
email:
|
57
71
|
- asterite@gmail.com
|
@@ -60,23 +74,29 @@ executables:
|
|
60
74
|
extensions: []
|
61
75
|
extra_rdoc_files: []
|
62
76
|
files:
|
77
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
63
78
|
- ".gitignore"
|
64
79
|
- ".rspec"
|
65
80
|
- ".rufo"
|
66
81
|
- ".travis.yml"
|
82
|
+
- CHANGELOG.md
|
67
83
|
- Gemfile
|
84
|
+
- Guardfile
|
68
85
|
- LICENSE.txt
|
69
86
|
- README.md
|
70
87
|
- Rakefile
|
71
88
|
- bin/console
|
72
89
|
- bin/setup
|
90
|
+
- docs/developing-rufo.md
|
91
|
+
- docs/releasing-a-gem.md
|
92
|
+
- docs/settings.md
|
73
93
|
- exe/rufo
|
74
94
|
- lib/rufo.rb
|
75
95
|
- lib/rufo/backport.rb
|
76
96
|
- lib/rufo/command.rb
|
77
97
|
- lib/rufo/dot_file.rb
|
78
98
|
- lib/rufo/formatter.rb
|
79
|
-
- lib/rufo/
|
99
|
+
- lib/rufo/settings.rb
|
80
100
|
- lib/rufo/version.rb
|
81
101
|
- rakelib/ci.rake
|
82
102
|
- rakelib/rufo.rake
|
@@ -101,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
121
|
version: '0'
|
102
122
|
requirements: []
|
103
123
|
rubyforge_project:
|
104
|
-
rubygems_version: 2.6.
|
124
|
+
rubygems_version: 2.6.13
|
105
125
|
signing_key:
|
106
126
|
specification_version: 4
|
107
127
|
summary: Ruby code formatter
|
@@ -1,198 +0,0 @@
|
|
1
|
-
class Rufo::Formatter
|
2
|
-
def init_settings(options)
|
3
|
-
indent_size options.fetch(:indent_size, 2)
|
4
|
-
spaces_inside_hash_brace options.fetch(:spaces_inside_hash_brace, :dynamic)
|
5
|
-
spaces_inside_array_bracket options.fetch(:spaces_inside_array_bracket, :dynamic)
|
6
|
-
spaces_around_equal options.fetch(:spaces_around_equal, :dynamic)
|
7
|
-
spaces_in_ternary options.fetch(:spaces_in_ternary, :dynamic)
|
8
|
-
spaces_in_suffix options.fetch(:spaces_in_suffix, :dynamic)
|
9
|
-
spaces_in_commands options.fetch(:spaces_in_commands, :dynamic)
|
10
|
-
spaces_around_block_brace options.fetch(:spaces_around_block_brace, :dynamic)
|
11
|
-
spaces_after_comma options.fetch(:spaces_after_comma, :dynamic)
|
12
|
-
spaces_around_hash_arrow options.fetch(:spaces_around_hash_arrow, :dynamic)
|
13
|
-
spaces_around_when options.fetch(:spaces_around_when, :dynamic)
|
14
|
-
spaces_around_dot options.fetch(:spaces_around_dot, :dynamic)
|
15
|
-
spaces_after_lambda_arrow options.fetch(:spaces_after_lambda_arrow, :dynamic)
|
16
|
-
spaces_around_unary options.fetch(:spaces_around_unary, :dynamic)
|
17
|
-
spaces_around_binary options.fetch(:spaces_around_binary, :dynamic)
|
18
|
-
spaces_after_method_name options.fetch(:spaces_after_method_name, :dynamic)
|
19
|
-
spaces_in_inline_expressions options.fetch(:spaces_in_inline_expressions, :dynamic)
|
20
|
-
parens_in_def options.fetch(:parens_in_def, :dynamic)
|
21
|
-
double_newline_inside_type options.fetch(:double_newline_inside_type, :dynamic)
|
22
|
-
visibility_indent options.fetch(:visibility_indent, :dynamic)
|
23
|
-
align_comments options.fetch(:align_comments, false)
|
24
|
-
align_assignments options.fetch(:align_assignments, false)
|
25
|
-
align_hash_keys options.fetch(:align_hash_keys, false)
|
26
|
-
align_case_when options.fetch(:align_case_when, false)
|
27
|
-
align_chained_calls options.fetch(:align_chained_calls, false)
|
28
|
-
trailing_commas options.fetch(:trailing_commas, :dynamic)
|
29
|
-
end
|
30
|
-
|
31
|
-
def indent_size(value)
|
32
|
-
@indent_size = value
|
33
|
-
end
|
34
|
-
|
35
|
-
def spaces_inside_hash_brace(value)
|
36
|
-
@spaces_inside_hash_brace = dynamic_always_never_match("spaces_inside_hash_brace", value)
|
37
|
-
end
|
38
|
-
|
39
|
-
def spaces_inside_array_bracket(value)
|
40
|
-
@spaces_inside_array_bracket = dynamic_always_never_match("spaces_inside_array_bracket", value)
|
41
|
-
end
|
42
|
-
|
43
|
-
def spaces_around_equal(value)
|
44
|
-
@spaces_around_equal = one_dynamic("spaces_around_equal", value)
|
45
|
-
end
|
46
|
-
|
47
|
-
def spaces_in_ternary(value)
|
48
|
-
@spaces_in_ternary = one_dynamic("spaces_in_ternary", value)
|
49
|
-
end
|
50
|
-
|
51
|
-
def spaces_in_suffix(value)
|
52
|
-
@spaces_in_suffix = one_dynamic("spaces_in_suffix", value)
|
53
|
-
end
|
54
|
-
|
55
|
-
def spaces_in_commands(value)
|
56
|
-
@spaces_in_commands = one_dynamic("spaces_in_commands", value)
|
57
|
-
end
|
58
|
-
|
59
|
-
def spaces_around_block_brace(value)
|
60
|
-
@spaces_around_block_brace = one_dynamic("spaces_around_block_brace", value)
|
61
|
-
end
|
62
|
-
|
63
|
-
def spaces_after_comma(value)
|
64
|
-
@spaces_after_comma = one_dynamic("spaces_after_comma", value)
|
65
|
-
end
|
66
|
-
|
67
|
-
def spaces_around_hash_arrow(value)
|
68
|
-
@spaces_around_hash_arrow = one_dynamic("spaces_around_hash_arrow", value)
|
69
|
-
end
|
70
|
-
|
71
|
-
def spaces_around_when(value)
|
72
|
-
@spaces_around_when = one_dynamic("spaces_around_when", value)
|
73
|
-
end
|
74
|
-
|
75
|
-
def spaces_around_dot(value)
|
76
|
-
@spaces_around_dot = no_dynamic("spaces_around_dot", value)
|
77
|
-
end
|
78
|
-
|
79
|
-
def spaces_after_lambda_arrow(value)
|
80
|
-
@spaces_after_lambda_arrow = one_no_dynamic("spaces_after_lambda_arrow", value)
|
81
|
-
end
|
82
|
-
|
83
|
-
def spaces_around_unary(value)
|
84
|
-
@spaces_around_unary = no_dynamic("spaces_around_unary", value)
|
85
|
-
end
|
86
|
-
|
87
|
-
def spaces_around_binary(value)
|
88
|
-
@spaces_around_binary = one_dynamic("spaces_around_binary", value)
|
89
|
-
end
|
90
|
-
|
91
|
-
def spaces_after_method_name(value)
|
92
|
-
@spaces_after_method_name = no_dynamic("spaces_after_method_name", value)
|
93
|
-
end
|
94
|
-
|
95
|
-
def spaces_in_inline_expressions(value)
|
96
|
-
@spaces_in_inline_expressions = one_dynamic("spaces_in_inline_expressions", value)
|
97
|
-
end
|
98
|
-
|
99
|
-
def parens_in_def(value)
|
100
|
-
@parens_in_def = yes_dynamic("parens_in_def", value)
|
101
|
-
end
|
102
|
-
|
103
|
-
def double_newline_inside_type(value)
|
104
|
-
@double_newline_inside_type = no_dynamic("double_newline_inside_type", value)
|
105
|
-
end
|
106
|
-
|
107
|
-
def trailing_commas(value)
|
108
|
-
case value
|
109
|
-
when :dynamic, :always, :never
|
110
|
-
@trailing_commas = value
|
111
|
-
else
|
112
|
-
raise ArgumentError.new("invalid value for trailing_commas: #{value}. Valid values are: :dynamic, :always, :never")
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def visibility_indent(value)
|
117
|
-
case value
|
118
|
-
when :indent, :align, :dynamic #, :dedent
|
119
|
-
@visibility_indent = value
|
120
|
-
else
|
121
|
-
raise ArgumentError.new("invalid value for visibility_indent: #{value}. Valid values are: :indent, :align, :dynamic")
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def align_comments(value)
|
126
|
-
@align_comments = value
|
127
|
-
end
|
128
|
-
|
129
|
-
def align_assignments(value)
|
130
|
-
@align_assignments = value
|
131
|
-
end
|
132
|
-
|
133
|
-
def align_hash_keys(value)
|
134
|
-
@align_hash_keys = value
|
135
|
-
end
|
136
|
-
|
137
|
-
def align_case_when(value)
|
138
|
-
@align_case_when = value
|
139
|
-
end
|
140
|
-
|
141
|
-
def align_chained_calls(value)
|
142
|
-
@align_chained_calls = value
|
143
|
-
end
|
144
|
-
|
145
|
-
def dynamic_always_never(name, value)
|
146
|
-
case value
|
147
|
-
when :dynamic, :always, :never
|
148
|
-
value
|
149
|
-
else
|
150
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :dynamic, :always, :never")
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
def dynamic_always_never_match(name, value)
|
155
|
-
case value
|
156
|
-
when :dynamic, :always, :never, :match
|
157
|
-
value
|
158
|
-
else
|
159
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :dynamic, :always, :never, :match")
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
def one_dynamic(name, value)
|
164
|
-
case value
|
165
|
-
when :one, :dynamic
|
166
|
-
value
|
167
|
-
else
|
168
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :one, :dynamic")
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
def no_dynamic(name, value)
|
173
|
-
case value
|
174
|
-
when :no, :dynamic
|
175
|
-
value
|
176
|
-
else
|
177
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :no, :dynamic")
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
def one_no_dynamic(name, value)
|
182
|
-
case value
|
183
|
-
when :no, :one, :dynamic
|
184
|
-
value
|
185
|
-
else
|
186
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :no, :one, :dynamic")
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
def yes_dynamic(name, value)
|
191
|
-
case value
|
192
|
-
when :yes, :dynamic
|
193
|
-
value
|
194
|
-
else
|
195
|
-
raise ArgumentError.new("invalid value for #{name}: #{value}. Valid values are: :yes, :dynamic")
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|