Module: Mongoid::Scribe

Extended by:
ActiveSupport::Autoload
Defined in:
lib/mongoid/scribe.rb,
lib/mongoid/scribe/engine.rb,
lib/mongoid/scribe/version.rb,
lib/mongoid/scribe/configuration.rb,
lib/mongoid/scribe/builders/field.rb,
lib/mongoid/scribe/builders/table.rb,
lib/mongoid/scribe/builders/relation.rb,
app/helpers/mongoid/scribe/documents_helper.rb,
app/controllers/mongoid/scribe/documents_controller.rb,
lib/mongoid/scribe/configuration/form_configuration.rb,
lib/mongoid/scribe/configuration/index_configuration.rb,
app/controllers/mongoid/scribe/application_controller.rb

Defined Under Namespace

Modules: Builders, DocumentsHelper Classes: ApplicationController, Configuration, DocumentsController, Engine, FormConfiguration, IndexConfiguration

Constant Summary collapse

DEFAULT_ENDPOINT =
"/documents"
DEFAULT_AUTHENTICATION_FILTER =
nil
VERSION =
"0.3.0"
@@form_configuration =
{}
@@index_configuration =
{}
@@authentication_filter =
DEFAULT_AUTHENTICATION_FILTER
@@endpoint =
DEFAULT_ENDPOINT
@@models =
Mongoid.models

Class Method Summary collapse

Class Method Details

.authenticate_with(filter) ⇒ Object



67
68
69
# File 'lib/mongoid/scribe.rb', line 67

def self.authenticate_with(filter)
  @@authentication_filter = filter
end

.configure(&block) ⇒ Object



34
35
36
# File 'lib/mongoid/scribe.rb', line 34

def self.configure(&block)
  instance_eval(&block)
end

.fields_for(klass) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/mongoid/scribe.rb', line 38

def self.fields_for(klass)
  default_fields = {}
  klass.fields.each_pair do |name, options|
    default_fields[name.to_s] = {}
  end
  @@form_configuration.fetch(klass, default_fields)
end

.form_configuration_for(document_class, &block) ⇒ Object



55
56
57
58
59
# File 'lib/mongoid/scribe.rb', line 55

def self.form_configuration_for(document_class, &block)
  @@form_configuration[document_class] = {}
  config = FormConfiguration.new(document_class, @@form_configuration[document_class])
  config.evaluate(&block)
end

.index_configuration_for(document_class, &block) ⇒ Object



61
62
63
64
65
# File 'lib/mongoid/scribe.rb', line 61

def self.index_configuration_for(document_class, &block)
  @@index_configuration[document_class] = {}
  config = IndexConfiguration.new(document_class, @@index_configuration[document_class])
  config.evaluate(&block)
end

.index_for(klass) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/mongoid/scribe.rb', line 46

def self.index_for(klass)
  default_fields = {}
  klass.fields.each_pair do |name, options|
    next if name.start_with?("_")
    default_fields[name.to_s] = {}
  end
  @@index_configuration.fetch(klass, default_fields)
end

.mount_at(endpoint) ⇒ Object



71
72
73
# File 'lib/mongoid/scribe.rb', line 71

def self.mount_at(endpoint)
  @@endpoint = endpoint
end

.resources(options = {}) ⇒ Object



75
76
77
78
79
80
81
82
83
84
# File 'lib/mongoid/scribe.rb', line 75

def self.resources(options={})
  ::Rails::Mongoid.load_models(Rails.application)
  if options[:include]
    @@models = Mongoid.models.select{ |model| Array(options[:include]).include?(model.to_s.underscore.downcase.to_sym) }
  elsif options[:exclude]
    @@models = Mongoid.models.reject{ |model| Array(options[:exclude]).include?(model.to_s.underscore.downcase.to_sym) }
  else
    @@models = Mongoid.models
  end
end