File tree Expand file tree Collapse file tree 4 files changed +69
-10
lines changed Expand file tree Collapse file tree 4 files changed +69
-10
lines changed Original file line number Diff line number Diff line change 1+ name : Ruby Style Check
2+
3+ on :
4+ push :
5+ branches : [ main ]
6+ paths :
7+ - ' **/*.rb'
8+
9+ jobs :
10+ style :
11+ runs-on : ubuntu-latest
12+ steps :
13+ - uses : actions/checkout@v4
14+
15+ - name : Set up Ruby
16+ uses : ruby/setup-ruby@v1
17+ with :
18+ ruby-version : ' 3.4'
19+ bundler-cache : true
20+
21+ - name : Install RuboCop and extensions
22+ run : |
23+ gem install rubocop
24+ gem install rubocop-rake
25+ gem install rubocop-rspec
26+
27+ - name : Run RuboCop
28+ continue-on-error : true
29+ run : rubocop
Original file line number Diff line number Diff line change 1+ require :
2+ - rubocop-rake
3+ - rubocop-rspec
4+
5+ AllCops :
6+ NewCops : enable
7+ TargetRubyVersion : 3.4
8+
9+ Style/Documentation :
10+ Enabled : false
11+
12+ Layout/LineLength :
13+ Max : 120
14+
15+ Style/StringLiterals :
16+ EnforcedStyle : single_quotes
17+
18+ Style/FrozenStringLiteralComment :
19+ Enabled : true
20+ EnforcedStyle : always
21+
22+ Style/For :
23+ Enabled : false
Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
13def functional_style ( input )
2- lefts , rights = input . split ( "\n " ) . map {
4+ lefts , rights = input . split ( "\n " ) . map do
35 |line | line . split ( ' ' ) . map ( &:to_i )
4- } . transpose
6+ end . transpose
57
68 sorted_lefts = lefts . sort
79 sorted_rights = rights . sort
810
911 distance = sorted_lefts . zip ( sorted_rights ) . sum { |left , right | ( left - right ) . abs }
1012
11- return distance
13+ distance
1214end
1315
1416def imperative_style ( input )
@@ -18,7 +20,7 @@ def imperative_style(input)
1820 rights = [ ]
1921
2022 for line in lines
21- left , right = line . split ( " " )
23+ left , right = line . split ( ' ' )
2224 lefts << left . to_i
2325 rights << right . to_i
2426 end
@@ -30,13 +32,15 @@ def imperative_style(input)
3032 for i in 0 ..( lefts . length - 1 )
3133 distance += ( sorted_lefts [ i ] - sorted_rights [ i ] ) . abs
3234 end
33- return distance
35+
36+ distance
3437end
3538
3639def solution ( input )
3740 functional_result = functional_style ( input )
3841 imperative_result = imperative_style ( input )
3942 puts "Functional result: #{ functional_result } "
4043 puts "Imparative result: #{ imperative_result } "
41- return functional_result
44+
45+ functional_result
4246end
Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
13def functional_style ( input )
24 lefts , rights = input . split ( "\n " ) . map { |line | line . split ( ' ' ) } . transpose
35
46 counts = rights . tally
57
68 similarity = lefts . sum { |left | counts [ left ] . to_i * left . to_i }
79
8- return similarity
10+ similarity
911end
1012
1113def imperative_style ( input )
@@ -15,7 +17,7 @@ def imperative_style(input)
1517 rights = Hash . new ( 0 )
1618
1719 for line in lines
18- left , right = line . split ( " " )
20+ left , right = line . split ( ' ' )
1921 lefts << left
2022 rights [ right ] += 1
2123 end
@@ -25,13 +27,14 @@ def imperative_style(input)
2527 similarity += left . to_i * rights [ left ]
2628 end
2729
28- return similarity
30+ similarity
2931end
3032
3133def solution ( input )
3234 functional_result = functional_style ( input )
3335 imperative_result = imperative_style ( input )
3436 puts "Functional result: #{ functional_result } "
3537 puts "Imparative result: #{ imperative_result } "
36- return functional_result
38+
39+ functional_result
3740end
You can’t perform that action at this time.
0 commit comments