# Golf Day 3: Reformat/Refactor a Golfer Class

**URL:** <https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55>\
**Category:** Archives\
**Created:** [September 19, 2018, 3:01pm UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55 "2018-09-19T15:01:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![eraserhd](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/eraserhd/32/15_2.png) [@eraserhd](https://discuss.kakoune.com/u/eraserhd)\
**Post date:** [September 19, 2018, 3:01pm UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/1 "2018-09-19T15:01:20Z")

</div>

[http://www.vimgolf.com/challenges/4d1a1c36567bac34a9000002](http://www.vimgolf.com/challenges/4d1a1c36567bac34a9000002)

**Reformat/Refactor a Golfer Class**

A simple case of removing unneeded code and fixing broken indentation.

Start file:

```auto
class Golfer
     def initialize; end # initialize
  def useless; end;
  
     def self.hello(a,b,c,d)
      puts "Hello #{a}, #{b}, #{c}, #{d}"
   end
end

```

End file:

```auto
class Golfer
  def self.hello(*a)
    puts "Hello #{a.join(',')}"
  end
end

```

---

<div class="post-metadata">

**Author:** ![robertmeta](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/robertmeta/32/833_2.png) [@robertmeta](https://discuss.kakoune.com/u/robertmeta)\
**Post date:** [September 19, 2018, 5:03pm UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/2 "2018-09-19T17:03:38Z")

</div>

So… yeah, missed a bit of it – coming up with final solution now.

```
j3Xd2Cd2gCdk<space>djf}t"Jc.join('.')<esc>,q

```

1.

---

<div class="post-metadata">

**Author:** ![eraserhd](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/eraserhd/32/15_2.png) [@eraserhd](https://discuss.kakoune.com/u/eraserhd)\
**Post date:** [September 20, 2018, 5:35pm UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/3 "2018-09-20T17:35:54Z")

</div>

This one is painful!

I’ve got 43:

`j3Xdmc(*a)<esc>ghdd<a-i>i<a-s><a-;>;d<space>kdfafdca.join(',')<esc>,q`

---

<div class="post-metadata">

**Author:** ![robertmeta](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/robertmeta/32/833_2.png) [@robertmeta](https://discuss.kakoune.com/u/robertmeta)\
**Post date:** [September 21, 2018, 4:29am UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/4 "2018-09-21T04:29:53Z")

</div>

Yeah, I mean, it feels like we should be able to do a lot better than 34 – but it just falls apart in practice.

---

<div class="post-metadata">

**Author:** ![eraserhd](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/eraserhd/32/15_2.png) [@eraserhd](https://discuss.kakoune.com/u/eraserhd)\
**Post date:** [September 26, 2018, 10:58am UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/5 "2018-09-26T10:58:18Z")

</div>

OK, I’m down to 35 (vs. Vim 32): `j3XddCdCdm<space>t"c.join(',')}<esc>k<a-i>bc*a<esc>,q`. Don’t think it’s done, we might make it.

@robertmeta it looks like you missed the hello parameters.

---

<div class="post-metadata">

**Author:** ![robertmeta](https://discuss.kakoune.com/user_avatar/discuss.kakoune.com/robertmeta/32/833_2.png) [@robertmeta](https://discuss.kakoune.com/u/robertmeta)\
**Post date:** [September 26, 2018, 5:49pm UTC](https://discuss.kakoune.com/t/golf-day-3-reformat-refactor-a-golfer-class/55/6 "2018-09-26T17:49:23Z")

</div>

doh. I did!
