Module: ActiveFedora::Crosswalks::Crosswalkable

Defined in:
lib/active_fedora/crosswalks/crosswalkable.rb

Instance Method Summary collapse

Instance Method Details

#contentObject

Override content so when it’s called it performs crosswalks first.



5
6
7
8
9
10
# File 'lib/active_fedora/crosswalks/crosswalkable.rb', line 5

def content
  crosswalkers.each do |crosswalker|
    crosswalker.sync_values
  end
  super
end

#content=(*args) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/active_fedora/crosswalks/crosswalkable.rb', line 11

def content=(*args)
  result = super(*args)
  crosswalkers.each do |crosswalker|
    crosswalker.sync_values(:force_target => true)
  end
  return result
end

#crosswalk(*args) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/active_fedora/crosswalks/crosswalkable.rb', line 24

def crosswalk(*args)
  args = args.first if args.respond_to? :first
  raise "Hash of options not given" unless args.kind_of?(Hash)
  args[:datastream] = self
  crosswalker = Crosswalker.new(args)
  crosswalker.validate!
  crosswalker.perform_crosswalk!
  self.crosswalkers << crosswalker
end

#crosswalk_fieldsObject



18
19
20
# File 'lib/active_fedora/crosswalks/crosswalkable.rb', line 18

def crosswalk_fields
  @crosswalk_fields ||= []
end

#crosswalkersObject



21
22
23
# File 'lib/active_fedora/crosswalks/crosswalkable.rb', line 21

def crosswalkers
  @crosswalkers ||= []
end