Skip to content

Instantly share code, notes, and snippets.

@acook
Last active December 24, 2015 21:39
Show Gist options
  • Save acook/6867359 to your computer and use it in GitHub Desktop.
Save acook/6867359 to your computer and use it in GitHub Desktop.
class ServerThing
def initialize session
@session = session # primary parameters
end
def for type, session
self.class.const_get("#{type.to_s.capitalize}Class").new_with self, ServerThing::Session.new(session)
end
class SuperClassForObjects
def self.new_with server, session
@server = server
@session = session
end
end
class NameClass < SuperClassForObjects
end
class TimeClass < SuperClassForObjects
end
class Session < Hash # or whatever
def initialize parameters
self.replace parameters
end
end
end
params = {stuff: 0}
session_params1 = {session_stuff: 1}
session_params2 = {session_stuff: 2}
server = ServerThing.new params
name_thing = server.for :name, session_params1
time_thing = server.for :time, session_params2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment