Skip to content

Instantly share code, notes, and snippets.

View kopylovvlad's full-sized avatar
💭
I ❤️ Ruby

Kopylov Vladislav kopylovvlad

💭
I ❤️ Ruby
  • RamblerGroup
  • Moscow
View GitHub Profile
require 'json'
module JSONable
def to_json(*options)
as_json(*options).to_json(*options)
end
end
class Tag
attr_reader :title
class SlackLogger
def initialize(message)
@message = message
end
def sending
puts 'we sending message to Slack'
end
end
class EmailLogger
def initialize(message)
# some classes
class SlackLogger
def initialize(message)
@message = message
end
def sending
puts 'we are sending message to Slack'
end
end
class EmailLogger
class Database
@@instance = Database.new
def self.instance
return @@instance
end
private_class_method :new
end
class Robot
attr_reader :model_name, :id, :release_date
def initialize(model_name:, id:, release_date:)
@model_name = model_name
@id = id
@release_date = release_date
end
end
class RobotFirstDecorator < SimpleDelegator
module SpamFilter
def self.is_spam?(msg)
# magic code is here
end
end
# == Schema Information
#
# Table name: comments
#
module TagCreator
def self.render(tag_object)
return '' if tag_object.nil?
return tag_object if tag_object.is_a?(::String) or tag_object.is_a?(::Integer)
str = "<#{tag_object.tag_name}>"
str += TagCreator.render(tag_object.content)
str += "</#{tag_object.tag_name}>"
str
end
require 'singleton'
class Employee
attr_accessor :name, :number, :address
def initialize(args = {})
@name = args[:name]
@number = args[:number]
@address = args[:address]
end
class AbstractLeaf
def initialize; end
def size
raise 'Called abstract method: size'
end
end
class AbstractComposite
attr_reader :subgroup
def initialize(args = {})
module Subject
def initialize
@observers = []
end
def add_observer(event_type, observer)
@observers << { event_type: event_type, observer: observer }
end
def delete_observer(event_type, observer)