Module RSS::Maker::Base
In: lib/rss/maker/base.rb

Methods

Public Class methods

[Source]

    # File lib/rss/maker/base.rb, line 10
10:       def self.append_features(klass)
11:         super
12: 
13:         klass.module_eval("\nOTHER_ELEMENTS = []\nNEED_INITIALIZE_VARIABLES = []\n\ndef self.inherited(subclass)\nsubclass.const_set(\"OTHER_ELEMENTS\", [])\nsubclass.const_set(\"NEED_INITIALIZE_VARIABLES\", [])\n\nsubclass.module_eval(<<-EOEOC, __FILE__, __LINE__)\ndef self.other_elements\nOTHER_ELEMENTS + super\nend\n\ndef self.need_initialize_variables\nNEED_INITIALIZE_VARIABLES + super\nend\nEOEOC\nend\n\ndef self.add_other_element(variable_name)\nOTHER_ELEMENTS << variable_name\nend\n\ndef self.other_elements\nOTHER_ELEMENTS\nend\n\ndef self.add_need_initialize_variable(variable_name, init_value=\"nil\")\nNEED_INITIALIZE_VARIABLES << [variable_name, init_value]\nend\n\ndef self.need_initialize_variables\nNEED_INITIALIZE_VARIABLES\nend\n\ndef self.def_array_element(name)\ninclude Enumerable\nextend Forwardable\n\ndef_delegators(\"@\\\#{name}\", :<<, :[], :[]=, :first, :last)\ndef_delegators(\"@\\\#{name}\", :push, :pop, :shift, :unshift)\ndef_delegators(\"@\\\#{name}\", :each, :size)\n\nadd_need_initialize_variable(name, \"[]\")\nend\n", __FILE__, __LINE__)
14:       end

[Source]

    # File lib/rss/maker/base.rb, line 63
63:       def initialize(maker)
64:         @maker = maker
65:         initialize_variables
66:       end

Public Instance methods

[Source]

    # File lib/rss/maker/base.rb, line 68
68:       def have_required_values?
69:         true
70:       end

Private Instance methods

[Source]

    # File lib/rss/maker/base.rb, line 85
85:       def current_element(rss)
86:         rss
87:       end

[Source]

    # File lib/rss/maker/base.rb, line 73
73:       def initialize_variables
74:         self.class.need_initialize_variables.each do |variable_name, init_value|
75:           instance_eval("@#{variable_name} = #{init_value}", __FILE__, __LINE__)
76:         end
77:       end

[Source]

     # File lib/rss/maker/base.rb, line 118
118:       def not_set_required_variables
119:         required_variable_names.find_all do |var|
120:           __send__(var).nil?
121:         end
122:       end

[Source]

     # File lib/rss/maker/base.rb, line 124
124:       def required_variables_are_set?
125:         required_variable_names.each do |var|
126:           return false if __send__(var).nil?
127:         end
128:         true
129:       end

[Source]

    # File lib/rss/maker/base.rb, line 79
79:       def setup_other_elements(rss)
80:         self.class.other_elements.each do |element|
81:           __send__("setup_#{element}", rss, current_element(rss))
82:         end
83:       end

[Source]

     # File lib/rss/maker/base.rb, line 89
 89:       def setup_values(target)
 90:         set = false
 91:         if have_required_values?
 92:           variables.each do |var|
 93:             setter = "#{var}="
 94:             if target.respond_to?(setter)
 95:               value = __send__(var)
 96:               if value
 97:                 target.__send__(setter, value)
 98:                 set = true
 99:               end
100:             end
101:           end
102:         end
103:         set
104:       end

[Source]

     # File lib/rss/maker/base.rb, line 114
114:       def variable_is_set?
115:         variables.find {|var| !__send__(var).nil?}
116:       end

[Source]

     # File lib/rss/maker/base.rb, line 106
106:       def variables
107:         self.class.need_initialize_variables.find_all do |name, init|
108:           "nil" == init
109:         end.collect do |name, init|
110:           name
111:         end
112:       end

[Validate]