Module | RSS::BaseModel |
In: |
lib/rss/rss.rb
|
# File lib/rss/rss.rb, line 243 243: def install_date_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil) 244: name ||= tag_name 245: type ||= :w3cdtf 246: disp_name ||= name 247: self::ELEMENTS << name 248: add_need_initialize_variable(name) 249: install_model(tag_name, uri, occurs, name) 250: 251: # accessor 252: convert_attr_reader name 253: date_writer(name, type, disp_name) 254: 255: install_element(name) do |n, elem_name| 256: "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" 257: end 258: 259: end
Alias for install_have_child_element
# File lib/rss/rss.rb, line 166 166: def install_have_child_element(tag_name, uri, occurs, name=nil, type=nil) 167: name ||= tag_name 168: add_need_initialize_variable(name) 169: install_model(tag_name, uri, occurs, name) 170: 171: writer_type, reader_type = type 172: def_corresponded_attr_writer name, writer_type 173: def_corresponded_attr_reader name, reader_type 174: install_element(name) do |n, elem_name| 175: "if @\#{n}\n\"\\\#{@\#{n}.to_s(need_convert, indent)}\"\nelse\n''\nend\n" 176: end 177: end
# File lib/rss/rss.rb, line 187 187: def install_have_children_element(tag_name, uri, occurs, name=nil, plural_name=nil) 188: name ||= tag_name 189: plural_name ||= "#{name}s" 190: add_have_children_element(name, plural_name) 191: add_plural_form(name, plural_name) 192: install_model(tag_name, uri, occurs, plural_name, true) 193: 194: def_children_accessor(name, plural_name) 195: install_element(name, "s") do |n, elem_name| 196: "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" 197: end 198: end
# File lib/rss/rss.rb, line 208 208: def install_text_element(tag_name, uri, occurs, name=nil, type=nil, 209: disp_name=nil) 210: name ||= tag_name 211: disp_name ||= name 212: self::ELEMENTS << name unless self::ELEMENTS.include?(name) 213: add_need_initialize_variable(name) 214: install_model(tag_name, uri, occurs, name) 215: 216: def_corresponded_attr_writer(name, type, disp_name) 217: def_corresponded_attr_reader(name, type || :convert) 218: install_element(name) do |n, elem_name| 219: "if respond_to?(:\#{n}_content)\ncontent = \#{n}_content\nelse\ncontent = @\#{n}\nend\nif content\nrv = \"\\\#{indent}<\#{elem_name}>\"\nvalue = html_escape(content)\nif need_convert\nrv << convert(value)\nelse\nrv << value\nend\nrv << \"</\#{elem_name}>\"\nrv\nelse\n''\nend\n" 220: end 221: end
# File lib/rss/rss.rb, line 479 479: def boolean_writer(name, disp_name=name) 480: 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)) 481: end
# File lib/rss/rss.rb, line 513 513: def content_writer(name, disp_name=name) 514: klass_name = "self.class::#{Utils.to_class_name(name)}" 515: module_eval("def \#{name}=(new_value)\nif new_value.is_a?(\#{klass_name})\n@\#{name} = new_value\nelse\n@\#{name} = \#{klass_name}.new\n@\#{name}.content = new_value\nend\nend\n", *get_file_and_line_from_caller(2)) 516: end
# File lib/rss/rss.rb, line 334 334: def convert_attr_reader(*attrs) 335: attrs.each do |attr| 336: attr = attr.id2name if attr.kind_of?(Integer) 337: module_eval("def \#{attr}\nconvert(@\#{attr})\nend\n", *get_file_and_line_from_caller(2)) 338: end 339: end
# File lib/rss/rss.rb, line 372 372: def csv_attr_reader(*attrs) 373: separator = nil 374: if attrs.last.is_a?(Hash) 375: options = attrs.pop 376: separator = options[:separator] 377: end 378: separator ||= ", " 379: attrs.each do |attr| 380: attr = attr.id2name if attr.kind_of?(Integer) 381: module_eval("attr_reader(:\#{attr})\ndef \#{attr}_content\nif @\#{attr}.nil?\n@\#{attr}\nelse\n@\#{attr}.join(\#{separator.dump})\nend\nend\n", __FILE__, __LINE__ + 1) 382: end 383: end
# File lib/rss/rss.rb, line 559 559: def csv_integer_writer(name, disp_name=name) 560: module_eval("def \#{name}=(new_value)\n@\#{name} = Utils::CSV.parse(new_value) {|v| Integer(v)}\nend\n", __FILE__, __LINE__ + 1) 561: end
# File lib/rss/rss.rb, line 550 550: def csv_writer(name, disp_name=name) 551: module_eval("def \#{name}=(new_value)\n@\#{name} = Utils::CSV.parse(new_value)\nend\n", __FILE__, __LINE__ + 1) 552: end
# File lib/rss/rss.rb, line 395 395: def date_writer(name, type, disp_name=name) 396: module_eval("def \#{name}=(new_value)\nif new_value.nil?\n@\#{name} = new_value\nelsif new_value.kind_of?(Time)\n@\#{name} = new_value.dup\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\nunless Date._parse(new_value, false).empty?\n@\#{name} = Time.parse(new_value)\nend\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)) 397: end
# File lib/rss/rss.rb, line 568 568: def def_children_accessor(accessor_name, plural_name) 569: 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)\nreceiver = self.class.name\nwarn(\"Warning:\\\#{caller.first.sub(/:in `.*'\\z/, '')}: \" \\\n\"Don't use `\\\#{receiver}\\#\#{accessor_name} = XXX'/\" \\\n\"`\\\#{receiver}\\#set_\#{accessor_name}(XXX)'. \" \\\n\"Those APIs are not sense of Ruby. \" \\\n\"Use `\\\#{receiver}\\#\#{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)) 570: end
# File lib/rss/rss.rb, line 290 290: def inherit_convert_attr_reader(*attrs) 291: attrs.each do |attr| 292: attr = attr.id2name if attr.kind_of?(Integer) 293: module_eval("def \#{attr}_without_inherit\nconvert(@\#{attr})\nend\n\ndef \#{attr}\nif @\#{attr}\n\#{attr}_without_inherit\nelsif @parent\n@parent.\#{attr}\nelse\nnil\nend\nend\n", *get_file_and_line_from_caller(2)) 294: end 295: end
# File lib/rss/rss.rb, line 277 277: def install_element(name, postfix="") 278: elem_name = name.sub('_', ':') 279: method_name = "#{name}_element#{postfix}" 280: add_to_element_method(method_name) 281: 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)) 282: end
# File lib/rss/rss.rb, line 435 435: def integer_writer(name, disp_name=name) 436: 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)) 437: end
# File lib/rss/rss.rb, line 456 456: def positive_integer_writer(name, disp_name=name) 457: 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)) 458: end
# File lib/rss/rss.rb, line 500 500: def text_type_writer(name, disp_name=name) 501: module_eval("def \#{name}=(new_value)\nif @do_validate and\n![\"text\", \"html\", \"xhtml\", nil].include?(new_value)\nraise NotAvailableValueError.new('\#{disp_name}', new_value)\nend\n@\#{name} = new_value\nend\n", *get_file_and_line_from_caller(2)) 502: end
# File lib/rss/rss.rb, line 312 312: def uri_convert_attr_reader(*attrs) 313: attrs.each do |attr| 314: attr = attr.id2name if attr.kind_of?(Integer) 315: module_eval("def \#{attr}_without_base\nconvert(@\#{attr})\nend\n\ndef \#{attr}\nvalue = \#{attr}_without_base\nreturn nil if value.nil?\nif /\\\\A[a-z][a-z0-9+.\\\\-]*:/i =~ value\nvalue\nelse\n\"\\\#{base}\\\#{value}\"\nend\nend\n", *get_file_and_line_from_caller(2)) 316: end 317: end
# File lib/rss/rss.rb, line 346 346: def yes_clean_other_attr_reader(*attrs) 347: attrs.each do |attr| 348: attr = attr.id2name if attr.kind_of?(Integer) 349: module_eval("attr_reader(:\#{attr})\ndef \#{attr}?\nYesCleanOther.parse(@\#{attr})\nend\n", __FILE__, __LINE__ + 1) 350: end 351: end
# File lib/rss/rss.rb, line 528 528: def yes_clean_other_writer(name, disp_name=name) 529: module_eval("def \#{name}=(value)\nvalue = (value ? \"yes\" : \"no\") if [true, false].include?(value)\n@\#{name} = value\nend\n", __FILE__, __LINE__ + 1) 530: end
# File lib/rss/rss.rb, line 359 359: def yes_other_attr_reader(*attrs) 360: attrs.each do |attr| 361: attr = attr.id2name if attr.kind_of?(Integer) 362: module_eval("attr_reader(:\#{attr})\ndef \#{attr}?\nUtils::YesOther.parse(@\#{attr})\nend\n", __FILE__, __LINE__ + 1) 363: end 364: end