Class: CollaborativeFilter::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/collaborative_filter/config.rb

Defined Under Namespace

Classes: Error

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



50
51
52
53
# File 'lib/collaborative_filter/config.rb', line 50

def initialize
  setup_defaults
  @datasets = {}
end

Instance Attribute Details

#datasetsObject (readonly)

Returns the value of attribute datasets.



26
27
28
# File 'lib/collaborative_filter/config.rb', line 26

def datasets
  @datasets
end

#recommender_optionsObject (readonly)

Returns the value of attribute recommender_options.



26
27
28
# File 'lib/collaborative_filter/config.rb', line 26

def recommender_options
  @recommender_options
end

Class Method Details

.config_option(option, default = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/collaborative_filter/config.rb', line 8

def self.config_option(option, default=nil)
  @@config_defaults ||= {}
  @@config_defaults[option] = default

  define_method(:setup_defaults) {
    @@config_defaults.each { |k,v| instance_variable_set("@#{k}".to_sym, v) }
  } unless instance_methods.include?('setup_defaults')

  class_eval <<-END
    def #{option}(input=nil)
      return @#{option} unless input
      @#{option} = input
    end
  END
end

Instance Method Details

#content_booster {|cb| ... } ⇒ Object

Yields:

  • (cb)


36
37
38
39
40
41
42
# File 'lib/collaborative_filter/config.rb', line 36

def content_booster
  return @content_booster unless block_given?

  cb = CollaborativeFilter::ContentBooster.new
  yield cb
  @content_booster = cb
end

#dataset(name) {|ds| ... } ⇒ Object

Yields:

  • (ds)

Raises:



28
29
30
31
32
33
34
# File 'lib/collaborative_filter/config.rb', line 28

def dataset(name)
  raise Error.new('#dataset requires a block') unless block_given?

  ds = CollaborativeFilter::DataSet.new
  yield ds
  @datasets[name] = ds
end

#recommender(input = nil, options = {}) ⇒ Object



44
45
46
47
48
# File 'lib/collaborative_filter/config.rb', line 44

def recommender(input=nil, options={})
  return @recommender unless input
  @recommender = input
  @recommender_options = options
end