Skip to content

Commit 5b14fac

Browse files
committed
ci: add ruby style check
1 parent e185685 commit 5b14fac

File tree

4 files changed

+69
-10
lines changed

4 files changed

+69
-10
lines changed

.github/workflows/ruby-style.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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

.rubocop.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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

2024/day1/part1.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1+
# frozen_string_literal: true
2+
13
def 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
1214
end
1315

1416
def 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
3437
end
3538

3639
def 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
4246
end

2024/day1/part2.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
# frozen_string_literal: true
2+
13
def 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
911
end
1012

1113
def 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
2931
end
3032

3133
def 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
3740
end

0 commit comments

Comments
 (0)