Skip to content

Instantly share code, notes, and snippets.

View gklsan's full-sized avatar

Gokul P gklsan

View GitHub Profile
def change_for(amount, res = {})
return 'Invalid amount' if amount < 1
if (amount / 25) > 0
res[:quarters] = amount / 25
change_for(amount % 25, res)
elsif (amount / 10) > 0
res[:dimes] = amount / 10
change_for(amount % 10, res)
elsif (amount / 5) > 0
@gklsan
gklsan / rails_binding_pry_on_docker.md
Created July 21, 2020 06:53 — forked from aloucas/rails_binding_pry_on_docker.md
Rails binding.pry usage with docker
  1. Initially install your pry-rails to group development on your apps Gemfile
group :development do
  # ..
  gem 'pry-rails'
  # ..
end
@gklsan
gklsan / atmost.rb
Last active November 23, 2019 16:32
Sliding Window Technique: Longest Subarray having sum of elements atmost ‘k’
arr = [1, 2, 1, 0, 1, 1, 0]
k = 4
def calculate(nums, k)
sum = 0
cnt = 0
maxcnt = 0
n = nums.size
n.times do |i|
if(sum + nums[i] <= k)
@gklsan
gklsan / toUnderscore.js
Last active November 22, 2019 05:49
Convert camelCase JSON key to underscore (ex: { FirstName: 'name'} to { first_name: 'name' }
function toUnderscore(o) {
var newO, origKey, newKey, value
if (o instanceof Array) {
return o.map(function(value) {
if (typeof value === "object") {
value = toUnderscore(value)
}
return value
})
} else {
@gklsan
gklsan / axios_call_with_basic_auth
Created October 24, 2019 06:15
Axios call with basic auth
import axios from 'axios';
const fetchDetails = async (headerDatas = {}, payload = {}) => {
const response = await axios.get(
'URL',
{
params: payload,
auth: {
username: USERNAME,
password: PASSWORD
@gklsan
gklsan / gist:0fcd98b9c0bf1c1b664c4554298288bc
Created October 23, 2019 15:23
Postgresql: Import data from CSV using COPY command
puts 'seeding data....'
@connection = ActiveRecord::Base.connection.raw_connection
def copy_data_from_csv(file_name, columns= '')
puts "********** #{file_name} process started **********"
table_name = file_name.split('.')[0]
csv_dir = Rails.root.join(file_name)
def search_in(array, val)
start_range, end_range = [0, (array.size - 1)]
return "#{val} Not found." if (end_range <= start_range)
mid = (start_range + end_range)/2
if array[mid] == val
return "#{val} Found."
elsif array[mid] > val
search_in(array[start_range..mid], val)
elsif array[mid] < val
search_in(array[(mid+1)..end_range], val)
@gklsan
gklsan / input.txt
Last active May 7, 2018 06:47
parking_lot problem with solution in ruby
create_parking_lot 6
park KA-01-HH-1234 White
park KA-01-HH-9999 White
park KA-01-BB-0001 Black
park KA-01-HH-7777 Red
park KA-01-HH-2701 Blue
park KA-01-HH-3141 Black
leave 4
status
park KA-01-P-333 White