Class: Hermeneutics::AddrList
- Inherits:
-
Object
- Object
- Hermeneutics::AddrList
- Includes:
- Enumerable
- Defined in:
- lib/hermeneutics/addrs.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(str) ⇒ Object
- #add(mail, real = nil) ⇒ Object
- #add_encoded(cont) ⇒ Object
- #add_quoted(str) ⇒ Object
-
#each ⇒ Object
:call-seq: each { |addr| … } -> self.
- #empty? ⇒ Boolean
- #encode ⇒ Object
- #has?(*mails) ⇒ Boolean (also: #has)
- #inspect ⇒ Object
- #notempty? ⇒ Boolean
- #push(addrs) ⇒ Object (also: #<<)
- #quote ⇒ Object
- #to_s ⇒ Object
- #under_domain(*args) ⇒ Object
Class Method Details
.parse(cont) ⇒ Object
579 580 581 |
# File 'lib/hermeneutics/addrs.rb', line 579 def parse cont new.add_encoded cont end |
Instance Method Details
#==(str) ⇒ Object
664 665 666 |
# File 'lib/hermeneutics/addrs.rb', line 664 def == str @list.find { |a| a == str } end |
#add(mail, real = nil) ⇒ Object
668 669 670 671 672 673 674 |
# File 'lib/hermeneutics/addrs.rb', line 668 def add mail, real = nil if real or not Addr === mail then mail = Addr.create mail, real end @list.push mail self end |
#add_encoded(cont) ⇒ Object
683 684 685 686 687 688 |
# File 'lib/hermeneutics/addrs.rb', line 683 def add_encoded cont Addr.parse_decode cont.to_s do |a,| @list.push a end self end |
#add_quoted(str) ⇒ Object
676 677 678 679 680 681 |
# File 'lib/hermeneutics/addrs.rb', line 676 def add_quoted str Addr.parse str.to_s do |a,| @list.push a end self end |
#each ⇒ Object
:call-seq:
each { |addr| ... } -> self
Call block for each address.
632 633 634 |
# File 'lib/hermeneutics/addrs.rb', line 632 def each @list.each { |a| yield a } end |
#empty? ⇒ Boolean
593 |
# File 'lib/hermeneutics/addrs.rb', line 593 def empty? ; @list.empty? ; end |
#encode ⇒ Object
618 619 620 621 622 623 624 625 |
# File 'lib/hermeneutics/addrs.rb', line 618 def encode r = [] @list.map { |a| if r.last then r.last << "," end r.push a.encode.dup } r end |
#has?(*mails) ⇒ Boolean Also known as: has
637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 |
# File 'lib/hermeneutics/addrs.rb', line 637 def has? *mails mails.find { |m| case m when Regexp then @list.find { |a| if a.plain =~ m then yield *$~.captures if block_given? true end } else self == m end } end |
#inspect ⇒ Object
606 607 608 |
# File 'lib/hermeneutics/addrs.rb', line 606 def inspect "<#{self.class}: " + (@list.map { |a| a.inspect }.join ", ") + ">" end |
#notempty? ⇒ Boolean
594 |
# File 'lib/hermeneutics/addrs.rb', line 594 def notempty? ; self if @list.notempty? ; end |
#push(addrs) ⇒ Object Also known as: <<
596 597 598 599 600 601 602 603 |
# File 'lib/hermeneutics/addrs.rb', line 596 def push addrs case addrs when nil then when String then add_encoded addrs when Addr then @list.push addrs else addrs.each { |a| push a } end end |
#quote ⇒ Object
614 615 616 |
# File 'lib/hermeneutics/addrs.rb', line 614 def quote @list.map { |a| a.quote }.join ", " end |
#to_s ⇒ Object
610 611 612 |
# File 'lib/hermeneutics/addrs.rb', line 610 def to_s @list.map { |a| a.to_s }.join ", " end |
#under_domain(*args) ⇒ Object
654 655 656 657 658 659 660 661 662 |
# File 'lib/hermeneutics/addrs.rb', line 654 def under_domain *args @list.each { |a| a.plain =~ /(.*)@/ or next l, d = $1, $' case d when *args then yield l end } end |