Module: Abstractor::Methods::Controllers::AbstractorAbstractionGroupsController

Included in:
AbstractorAbstractionGroupsController
Defined in:
lib/abstractor/methods/controllers/abstractor_abstraction_groups_controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
# File 'lib/abstractor/methods/controllers/abstractor_abstraction_groups_controller.rb', line 5

def self.included(base)
  base.send :helper, :all
  base.send :before_filter, :set_abstractor_abstraction_group, only: [:destroy, :update]
end

Instance Method Details

#createObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/abstractor/methods/controllers/abstractor_abstraction_groups_controller.rb', line 10

def create
  @abstractor_abstraction_group = Abstractor::AbstractorAbstractionGroup.new(abstractor_subject_group_id: params[:abstractor_subject_group_id], about_type: params[:about_type], about_id: params[:about_id])

  abstractor_subjects = @abstractor_abstraction_group.abstractor_subject_group.abstractor_subjects
  unless params[:namespace_type].blank? || params[:namespace_id].blank?
    @namespace_id   = params[:namespace_id]
    @namespace_type = params[:namespace_type]
    abstractor_subjects = abstractor_subjects.where(namespace_type: @namespace_type, namespace_id: @namespace_id)
  end

  abstractor_subjects.each do |abstractor_subject|
    abstraction = abstractor_subject.abstractor_abstractions.build(about_id: params[:about_id], about_type: params[:about_type])
    abstraction.abstractor_subject.abstractor_abstraction_sources.select { |s| s.abstractor_abstraction_source_type.name == 'indirect' }.each do |abstractor_abstraction_source|
      source = abstractor_subject.subject_type.constantize.find(params[:about_id]).send(abstractor_abstraction_source.from_method)
      abstraction.abstractor_indirect_sources.build(abstractor_abstraction_source: abstractor_abstraction_source, source_type: source[:source_type], source_method: source[:source_method])

    end
    @abstractor_abstraction_group.abstractor_abstractions << abstraction
  end
  @abstractor_abstraction_group.save!

  respond_to do |format|
    format.html { render action: "edit", layout: false }
  end
end

#destroyObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/abstractor/methods/controllers/abstractor_abstraction_groups_controller.rb', line 36

def destroy
  if @abstractor_abstraction_group.soft_delete!
    flash[:notice] = "Group was successfully deleted."
  else
    flash[:error] = "Group could not be deactivated: #{abstractor_abstraction_group.errors.full_messages.join(',')}"
  end
  respond_to do |format|
    format.js   { head :no_content }
    format.json { head :no_content }
  end
end

#updateObject



48
49
50
51
52
53
54
# File 'lib/abstractor/methods/controllers/abstractor_abstraction_groups_controller.rb', line 48

def update
  abstractor_abstraction_value = params[:abstractor_abstraction_value]
  Abstractor::AbstractorAbstraction.update_abstractor_abstraction_other_value(@abstractor_abstraction_group.abstractor_abstractions, abstractor_abstraction_value)
  respond_to do |format|
    format.html { render action: "edit", layout: false }
  end
end