Skip to content

Instantly share code, notes, and snippets.

Implementation of flatten method of Array#flatten

Requires Ruby 1.9.2 or above. This implementation adds Array#my_flatten to an Array object, which is itself a replica of Array#flatten which is done in C.

Run test

Make sure you have minitest gem installed: $ gem install minitest. Then run:

ruby my_flatten_test.rb

@suryart
suryart / binary_tree.rb
Last active August 24, 2016 19:27
Algo and DS implementations in Ruby
class BinaryTreeNode
attr_accessor :left, :right, :data
def initialize(data)
@data = data
end
end
class TreeQueue
@suryart
suryart / sort_array_bin.rb
Created September 26, 2016 11:24
sort by binary 1 count then by digit value
# sort by binary 1 count then by digit value
a.sort_by{ |v1| [v1.to_s(2).split('').count('1'), v1] }.reverse
users:
id, username, password
tickets:
id, booking_id, amount, discount, seat_id, show_id
bookings
id, user_id, total, ticket_counts
screens
@suryart
suryart / file-change.rb
Created May 23, 2017 19:26
change duplicate file names
file_extension = '.rb'
files = Dir["./*#{file_extension}"]
puts "="*10
puts " Total files: #{files.count}"
puts "="*10
files_deleted = 0
file_timestamp = Time.now.strftime('%Y%m%d')
files.each do |file|
puts File.basename file, file_extension
module InstanceModule
def track
"Tracking todo: #{self.name}"
end
end
module ClassModule
def class_name
"Tracking class: #{self.name}"
@suryart
suryart / appliance.rb
Created February 25, 2018 15:02
observer-pattern
class Appliance
attr_accessor :name, :state , :switch
def initialize(name, switch = nil)
@name = name
@state = switch.nil? ? :off : switch.state
@switch = switch
end
def update(changed_state)
self.state = changed_state
require 'prawn'
Prawn::Document.generate("./my_pdf.pdf") do
# Print Name
fill_color "565656"
font_size(38) { text "HEADING", align: :center }
move_down 20
stroke_color "c0c0c0" #dimgray color code
@suryart
suryart / gist:4db3482d5f5fc47b7722dfdd6b5b657e
Created March 26, 2019 19:19 — forked from dreamwords/gist:149518
activeresource client certificate
diff --git a/activeresource/lib/active_resource/base.rb b/activeresource/lib/active_resource/base.rb
index dc24e71..f814b8b 100644
--- a/activeresource/lib/active_resource/base.rb
+++ b/activeresource/lib/active_resource/base.rb
@@ -102,6 +102,8 @@ module ActiveResource
#
# Many REST APIs will require authentication, usually in the form of basic
# HTTP authentication. Authentication can be specified by:
+ #
+ # === HTTP Basic Authentication
@suryart
suryart / spiral_print_matrix.ex
Last active June 17, 2019 19:05
Solution to Spiral print of elements of a matrix(2D array)
defmodule MatrixSpiralPrint do
@moduledoc """
Solution to Spiral print of elements of a matrix(2D array)
"""
@doc """
prints elements of matrix(2D array) in a spiral
## Examples