DEV Community

Cover image for My first DEV PR and post!

My first DEV PR and post!

Glenn Carremans on February 07, 2019

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...
Collapse
 
ben profile image
Ben Halpern

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. ๐Ÿ˜„

Collapse
 
glennmen profile image
Glenn Carremans

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.

Collapse
 
link2twenty profile image
Andrew Bone • Edited

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|
Collapse
 
itachiuchiha profile image
Itachi Uchiha • Edited

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

Collapse
 
dechamp profile image
DeChamp

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!

Collapse
 
glennmen profile image
Glenn Carremans

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.

Collapse
 
dechamp profile image
DeChamp

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!

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
glennmen profile image
Glenn Carremans

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.

Collapse
 
jamesmh profile image
James Hickey

Good stuff!

Collapse
 
kyleboe profile image
Kyle Boe

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

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

I'll_see_myself_out_

Collapse
 
glennmen profile image
Glenn Carremans

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

Collapse
 
azelalynetan profile image
Azel Tan

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