Class: Cellect::Server::Adapters::Default

Inherits:
Object
  • Object
show all
Defined in:
lib/cellect/server/adapters/default.rb

Direct Known Subclasses

Postgres

Instance Method Summary collapse

Instance Method Details

#load_data_for(project_name) ⇒ Object

Load the data for a project, this method:

Accepts a project
Returns an array of hashes in the form:
{
  'id' => 123,
  'priority' => 0.123,
  'group_id' => 456
}

Raises:

  • (NotImplementedError)


25
26
27
# File 'lib/cellect/server/adapters/default.rb', line 25

def load_data_for(project_name)
  raise NotImplementedError
end

#load_project(args) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/cellect/server/adapters/default.rb', line 41

def load_project(args)
  info = if args.is_a?(Hash)
    args
  elsif args.is_a?(String)
    project_list.select{ |h| h['name'] == args }.first
  else
    raise ArgumentError
  end
  
  project_for info
end

#load_projectsObject



37
38
39
# File 'lib/cellect/server/adapters/default.rb', line 37

def load_projects
  project_list.each{ |project_info| load_project project_info }
end

#load_user(project_name, id) ⇒ Object

Load seen ids for a user, this method:

Accepts a project_name, and a user id
Returns an array in the form:
[1, 2, 3]

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/cellect/server/adapters/default.rb', line 33

def load_user(project_name, id)
  raise NotImplementedError
end

#project_for(opts = { }) ⇒ Object



53
54
55
56
# File 'lib/cellect/server/adapters/default.rb', line 53

def project_for(opts = { })
  project_klass = opts.fetch('grouped', false) ? GroupedProject : Project
  project_klass[opts['name'], pairwise: opts['pairwise'], prioritized: opts['prioritized']]
end

#project_listObject

Return a list of projects to load in the form:

[{
  'id' => 123,
  'name' => 'foo',
  'prioritized' => false,
  'pairwise' => false,
  'grouped' => false
}, ...]

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/cellect/server/adapters/default.rb', line 13

def project_list
  raise NotImplementedError
end