Module: RSS::Maker::AtomTextConstruct

Defined in:
lib/rss/maker/atom.rb

Class Method Summary collapse

Class Method Details

.def_atom_text_construct(klass, name, maker_name, klass_name = nil, atom_klass_name = nil) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/rss/maker/atom.rb', line 41

def def_atom_text_construct(klass, name, maker_name, klass_name=nil,
                            atom_klass_name=nil)
  klass_name ||= Utils.to_class_name(name)
  atom_klass_name ||= Utils.to_class_name(name)

  klass.class_eval(<<-EOC, __FILE__, __LINE__ + 1)
    class #{klass_name} < #{klass_name}Base
      include #{self.name}
      def to_feed(feed, current)
        #{name} = current.class::#{atom_klass_name}.new
        if setup_values(#{name})
          current.#{name} = #{name}
          set_parent(#{name}, current)
          setup_other_elements(feed)
        elsif variable_is_set?
          raise NotSetError.new(#{maker_name.dump},
                                not_set_required_variables)
        end
      end
    end
  EOC
end