Module RSS::BaseModel
In: lib/rss/rss.rb

Methods

Included Modules

Utils

Public Instance methods

[Source]

     # File lib/rss/rss.rb, line 213
213:     def install_date_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
214:       name ||= tag_name
215:       type ||= :w3cdtf
216:       disp_name ||= name
217:       self::ELEMENTS << name
218:       add_need_initialize_variable(name)
219:       install_model(tag_name, uri, occurs, name)
220: 
221:       # accessor
222:       convert_attr_reader name
223:       date_writer(name, type, disp_name)
224:       
225:       install_element(name) do |n, elem_name|
226:         "if @\#{n}\nrv = \"\\\#{indent}<\#{elem_name}>\"\nvalue = html_escape(@\#{n}.\#{type})\nif need_convert\nrv << convert(value)\nelse\nrv << value\nend\nrv << \"</\#{elem_name}>\"\nrv\nelse\n''\nend\n"
227:       end
228: 
229:     end
install_have_attribute_element(tag_name, uri, occurs, name=nil)

[Source]

     # File lib/rss/rss.rb, line 144
144:     def install_have_child_element(tag_name, uri, occurs, name=nil)
145:       name ||= tag_name
146:       add_need_initialize_variable(name)
147:       install_model(tag_name, uri, occurs, name)
148: 
149:       attr_accessor name
150:       install_element(name) do |n, elem_name|
151:         "if @\#{n}\n\"\\\#{@\#{n}.to_s(need_convert, indent)}\"\nelse\n''\nend\n"
152:       end
153:     end

[Source]

     # File lib/rss/rss.rb, line 163
163:     def install_have_children_element(tag_name, uri, occurs, name=nil, plural_name=nil)
164:       name ||= tag_name
165:       plural_name ||= "#{name}s"
166:       add_have_children_element(name, plural_name)
167:       add_plural_form(name, plural_name)
168:       install_model(tag_name, uri, occurs, plural_name)
169: 
170:       def_children_accessor(name, plural_name)
171:       install_element(name, "s") do |n, elem_name|
172:         "rv = []\n@\#{n}.each do |x|\nvalue = \"\\\#{x.to_s(need_convert, indent)}\"\nrv << value if /\\\\A\\\\s*\\\\z/ !~ value\nend\nrv.join(\"\\n\")\n"
173:       end
174:     end

[Source]

     # File lib/rss/rss.rb, line 184
184:     def install_text_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
185:       name ||= tag_name
186:       disp_name ||= name
187:       self::ELEMENTS << name
188:       add_need_initialize_variable(name)
189:       install_model(tag_name, uri, occurs, name)
190: 
191:       def_corresponded_attr_writer name, type, disp_name
192:       convert_attr_reader name
193:       install_element(name) do |n, elem_name|
194:         "if @\#{n}\nrv = \"\\\#{indent}<\#{elem_name}>\"\nvalue = html_escape(@\#{n})\nif need_convert\nrv << convert(value)\nelse\nrv << value\nend\nrv << \"</\#{elem_name}>\"\nrv\nelse\n''\nend\n"
195:       end
196:     end

Private Instance methods

[Source]

     # File lib/rss/rss.rb, line 356
356:     def boolean_writer(name, disp_name=name)
357:       module_eval("def \#{name}=(new_value)\nif new_value.nil?\n@\#{name} = new_value\nelse\nif @do_validate and\n![true, false, \"true\", \"false\"].include?(new_value)\nraise NotAvailableValueError.new('\#{disp_name}', new_value)\nend\nif [true, false].include?(new_value)\n@\#{name} = new_value\nelse\n@\#{name} = new_value == \"true\"\nend\nend\nend\n", *get_file_and_line_from_caller(2))
358:     end

[Source]

     # File lib/rss/rss.rb, line 260
260:     def convert_attr_reader(*attrs)
261:       attrs.each do |attr|
262:         attr = attr.id2name if attr.kind_of?(Integer)
263:         module_eval("def \#{attr}\nif @converter\n@converter.convert(@\#{attr})\nelse\n@\#{attr}\nend\nend\n", *get_file_and_line_from_caller(2))
264:       end
265:     end

[Source]

     # File lib/rss/rss.rb, line 276
276:     def date_writer(name, type, disp_name=name)
277:       module_eval("def \#{name}=(new_value)\nif new_value.nil? or new_value.kind_of?(Time)\n@\#{name} = new_value\nelse\nif @do_validate\nbegin\n@\#{name} = Time.__send__('\#{type}', new_value)\nrescue ArgumentError\nraise NotAvailableValueError.new('\#{disp_name}', new_value)\nend\nelse\n@\#{name} = nil\nif /\\\\A\\\\s*\\\\z/ !~ new_value.to_s\nbegin\n@\#{name} = Time.parse(new_value)\nrescue ArgumentError\nend\nend\nend\nend\n\n# Is it need?\nif @\#{name}\nclass << @\#{name}\nundef_method(:to_s)\nalias_method(:to_s, :\#{type})\nend\nend\n\nend\n", *get_file_and_line_from_caller(2))
278:     end

[Source]

     # File lib/rss/rss.rb, line 377
377:     def def_children_accessor(accessor_name, plural_name)
378:       module_eval("def \#{plural_name}\n@\#{accessor_name}\nend\n\ndef \#{accessor_name}(*args)\nif args.empty?\n@\#{accessor_name}.first\nelse\n@\#{accessor_name}[*args]\nend\nend\n\ndef \#{accessor_name}=(*args)\nwarn(\"Warning:\\\#{caller.first.sub(/:in `.*'\\z/, '')}: \" \\\n\"Don't use `\#{accessor_name} = XXX'/`set_\#{accessor_name}(XXX)'. \" \\\n\"Those APIs are not sense of Ruby. \" \\\n\"Use `\#{plural_name} << XXX' instead of them.\")\nif args.size == 1\n@\#{accessor_name}.push(args[0])\nelse\n@\#{accessor_name}.__send__(\"[]=\", *args)\nend\nend\nalias_method(:set_\#{accessor_name}, :\#{accessor_name}=)\n", *get_file_and_line_from_caller(2))
379:     end

[Source]

     # File lib/rss/rss.rb, line 247
247:     def install_element(name, postfix="")
248:       elem_name = name.sub('_', ':')
249:       method_name = "#{name}_element#{postfix}"
250:       add_to_element_method(method_name)
251:       module_eval("def \#{method_name}(need_convert=true, indent='')\n\#{yield(name, elem_name)}\nend\nprivate :\#{method_name}\n", *get_file_and_line_from_caller(2))
252:     end

[Source]

     # File lib/rss/rss.rb, line 312
312:     def integer_writer(name, disp_name=name)
313:       module_eval("def \#{name}=(new_value)\nif new_value.nil?\n@\#{name} = new_value\nelse\nif @do_validate\nbegin\n@\#{name} = Integer(new_value)\nrescue ArgumentError\nraise NotAvailableValueError.new('\#{disp_name}', new_value)\nend\nelse\n@\#{name} = new_value.to_i\nend\nend\nend\n", *get_file_and_line_from_caller(2))
314:     end

[Source]

     # File lib/rss/rss.rb, line 333
333:     def positive_integer_writer(name, disp_name=name)
334:       module_eval("def \#{name}=(new_value)\nif new_value.nil?\n@\#{name} = new_value\nelse\nif @do_validate\nbegin\ntmp = Integer(new_value)\nraise ArgumentError if tmp <= 0\n@\#{name} = tmp\nrescue ArgumentError\nraise NotAvailableValueError.new('\#{disp_name}', new_value)\nend\nelse\n@\#{name} = new_value.to_i\nend\nend\nend\n", *get_file_and_line_from_caller(2))
335:     end

[Validate]