loading...
Cover image for My first DEV PR and post!

My first DEV PR and post!

glennmen profile image Glenn Carremans Updated on ใƒป1 min read

Yesterday my very first DEV PR got merged!
I didn't have any experience in Ruby so I wanted to do something easy, I came across this Issue/Feature request from @jess .

3 year badge #1562

Is your feature request related to a problem? Please describe. Let's award 3 year badges when members hit their 3 year mark!

Even though the Issue wasn't approved yet I felt pretty confident that it wouldn't be an issue because it was a suggestion from a DEV co-founder ๐Ÿ˜‚

The PR itself was fairly easy, I could base my code on the already available 2 year anniversary badge with little changes required.

Added 3 year anniversary badge #1732

What type of PR is this? (check all applicable)

  • [ ] Refactor
  • [X] Feature
  • [ ] Bug Fix
  • [ ] Documentation Update

Description

Added 3 year anniversary badge, I hope to get this badge some day ๐Ÿ˜‰ Btw this is the very first time I ever did anything in Ruby so please let me know if I did anything wrong.

Related Tickets & Documents

Closes #1562

Mobile & Desktop Screenshots/Recordings (if there are UI changes)

Added to documentation?

  • [ ] docs.dev.to
  • [ ] readme
  • [X] no documentation needed

[optional] What gif best describes this PR or how it makes you feel?

happy birthday

After that the PR got reviewed and merged very quickly by @ben .

I hope to stay in this awesome community long enough to receive this badge!


This is my very first blog post on DEV (and first blog post in general) I hope to not only lurk and comment but in the future make more blog posts, also a little more technical posts.


And besides my very first DEV PR and post I have also received my very first DEV Badge! ๐ŸŽ‰

Posted on by:

glennmen profile

Glenn Carremans

@glennmen

Native Android developer/Consultant for Appwise, I work on custom projects for clients. PHP/JS (web) developer in my freetime. Trying to keep learning in an ever changing tech world.

Discussion

markdown guide
 

This was one of those tasks I was sure we were going to put off for way too long.

We still don't have a four-year badge designed, but I feel like this part of the code now could probably be refactored to account for an arbitrary number of years, and maybe take an environment variable to determine how many to iterate through.

Anyone who wants to refactor this so we don't need to add a new method every year is welcome to submit another PR at some point in the next 11 or so months. ๐Ÿ˜„

 

Interesting, this would indeed be a good improvement to be more future proof. Only thing you still would need to do is prepare the designs for the upcoming years but you could make a couple at once so you will be good for a few years ๐Ÿ˜‰

I am triggered by this challenge but am afraid that my knowledge in Ruby isn't good enough right now.

 

I'd guess something like this

def self.award_x_year_badges(x)
  @n = {1=>"one", 2=>"two", 3=>"three",4=>"four", 5=>"five", 6=>"six", 7=>"seven", 8=>"eight", 9=>"nine", 10=>"ten"}
  s = x == 1 ? "" : "s"
  message = "Happy DEV birthday! Can you believe it's been #{@n[x]} year#{s} already?!"
  User.where("created_at < ? AND created_at > ?", (x).year.ago, (x * 365 + 2).days.ago).find_each do |user|
    achievement = BadgeAchievement.create(
      user_id: user.id,
      badge_id: Badge.find_by_slug("#{@n[x]}-year-club").id,
      rewarding_context_message_markdown: message,
    )
    user.save if achievement.valid?
  end
end

for x in 1..10
  self.award_x_year_badges(x)
end

Though I don't really know ruby either ๐Ÿ˜…

I'm not sure this line would work as expected

User.where("created_at < ? AND created_at > ?", (x).year.ago, (x * 365 + 2).days.ago).find_each do |user|
 

This week my second dev.to pr merged. Iโ€™m so happy. This makes me feel better. Being part of the dev.to contributors is awesome.

Thanks @ben

 

dude!! So awesome! You totally encouraged me to try this myself. I literally looks at the repo the other day and was going to fix an issue (also not a ruby dev) but I was like... no they probably won't want me to. Thanks to you, I know I should!

 

Awesome! I never expected that I was going to encourage anyone to contribute with my small PR and post ๐Ÿ˜‚ But so happy that I did!
I thought the same in the past with a Node project (cdnjs.com) after a year, during Hacktoberfest, I finally did it and it was a lot of fun. I have tried different small projects/tweaks in the past, python, node and now ruby, always fun to step out of your comfort zone and just mess around.

 

Ya! you made a big step today. I was blown away by what happens when you put yourself out there. It helps others, so thank you!

 

Congrats Glenn on getting your first PR merged! ๐Ÿ”ฅ

 

Thanks! It wasn't that big of a change and I am sure anyone could have done it but it still feels great to be able to contribute to this community.

 
 

Nice! I had one merged a couple weeks ago too. Feels good man.

Welcome to the PR-ty ! โ˜œ(๏พŸใƒฎ๏พŸโ˜œ)

I'll_see_myself_out_

 

Awesome PR! Everyone needs a little music in their life ๐Ÿ˜‰

 

Congrats!! Keep it up and treasure that feeling to keep going :)