Design question - user data from two different sources


how would you go about this: I would like my app to be able to
alternatively draw user data from two sources - a users table in a
database and an LDAP server. By alternatively I mean it would be set up
to draw from one of these sources, not both at the same time. I would
like to have objects of type Person which I would use regardless of
where this person is stored, so both the active record model and the
ldap user model would have a common set of functions that they would be
responding to and the application can ignore where the data is pulled

so what would be an elegant way of achieving this? I would appreciate a
suggestion of some pattern of organising these models. What I’ve come up
with so far are 3 classes - DbPerson and LDAPPerson, and a Person class
which is supposed to be something like an interface. It has an if clause
that checks the USE_LDAP constant. Depending on this test it sets a
@my_class variable. Then it defines wrappers to all the common functions
of the two models and calls the methods of the relevant model by using
the @my_class var. This works but it seems clumsy to me so I’m looking
for insights :slight_smile:



This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs