Created
May 15, 2015 20:24
-
-
Save Ross-Hunter/e45f24d4d68ddec94496 to your computer and use it in GitHub Desktop.
Some architecture stuff in a fake language
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ActiveRecord | |
## Domain | |
### /bucket-form | |
def post params | |
bucket = params['bucket'] | |
machine = params['machine'] | |
machine.save | |
bucket.machine_id = machine.id | |
bucket.save | |
class Bucket | |
attrs through Assembly | |
def save | |
validate() | |
Assembly.create(self) | |
def validate | |
can_i_be_saved_as_an_assembly | |
class Machine | |
attrs through Unit | |
def save | |
validate() | |
Unit.create(self) | |
def validate | |
i_have_all_my_stuff? | |
## Persistence | |
class Assembly | |
def save | |
PG.save | |
class Unit | |
def save | |
PG.save | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
# Repository | |
## Domain | |
#### /bucket-form | |
class BucketForm bucket_service | |
def post params | |
bucket = new Bucket(params['bucket']) | |
machine = new Machine(params['machine']) | |
bucket['machine'] = machine | |
result = bucket_service.create_new_bucket_with_machine(bucket, machine) | |
if result is bad | |
respond error | |
else | |
respond good | |
class Bucket | |
Id | |
Name | |
Model | |
Machine_id | |
class Machine | |
Id | |
Name | |
Type | |
class Bucket_Service(IRepository bucketRepo) | |
def create_new_bucket_with_machine bucket, machine | |
if not validateBucket | |
return badness | |
else | |
bucketRepo.create(bucket) | |
machineRepo.create(machine) | |
def validateBucket | |
can_i_be_saved_as_an_assembly | |
## Persistence | |
class BucketRepo : IRepository<bucket> | |
def create(bucket) | |
Assembly.create(bucket) | |
def read | |
def udpate | |
def delete | |
class MachineRepo : IRepository<machine> | |
def create(bucket) | |
Unit.create(bucket) | |
def read | |
def udpate | |
def delete |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment