Sha256: 7c57844cfe39553ff8e625df52ebf3d9eb2d52e80f472c5c6ae83b29bda1325f

Contents?: true

Size: 737 Bytes

Versions: 4

Compression:

Stored size: 737 Bytes

Contents

# Support class
module Webmoney
  class Purse < String

    # Parameter: purse - String or Purse

    def initialize(str)
      str = str.to_s unless str.kind_of?(String)
      raise IncorrectPurseError, str unless str =~ /^[BCDEGRUYZ]\d{12}$/
      super(str)
    end

    def purse; self end

    def self.worker= (worker)
      @@worker = worker
    end

    def self.worker
      @@worker
    end

    # Get WMID for this purse
    def wmid
      # memoize
      @wmid ||=
        begin
          res = @@worker.request(:find_wm, :purse => self)
          res[:retval] == 1 ? Wmid.new(res[:wmid]) : nil
        end
    end

    # Purse is belong to wmid?
    def belong_to?(wmid)
      self.wmid == Wmid.new(wmid)
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
webmoney-0.0.7 lib/purse.rb
webmoney-0.0.6 lib/purse.rb
webmoney-0.0.5 lib/purse.rb
webmoney-0.0.4.8 lib/purse.rb