1
0
mirror of https://github.com/bumi/openalias-ruby synced 2025-06-15 14:38:13 +00:00

Add currency lookup helpers

add ? methods to for simple currency selection:
Openalias.addresses('donate@getmonero.org').find(&:xmr?)
This commit is contained in:
bumi 2018-11-03 18:30:37 +01:00
parent 6e3b03abda
commit 30e9a0d805
3 changed files with 20 additions and 1 deletions

View File

@ -36,6 +36,9 @@ Openalias.addresses('btc@michaelbumann.com')
Openalias.addresses('donate.getmonero.org')
=> [#<Openalias::CryptoAddress cryptocurrency="xmr", address="44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A", recipient_name="Monero Development", tx_description="Donation to Monero Core Team">, #<Openalias::CryptoAddress cryptocurrency="btc", address="1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H", recipient_name="Monero Development", tx_description="Donation to Monero Core Team">]
Openalias.addresses('donate.getmonero.org').find(&:xmr?)
=> #<Openalias::CryptoAddress cryptocurrency="xmr", address="44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A", recipient_name="Monero Development", tx_description="Donation to Monero Core Team">
Openalias.addresses('donate.getmonero.org')[0].recipient_name
=> "Monero Development"

View File

@ -3,7 +3,16 @@ require 'ostruct'
class Openalias
VERSION = "0.1.0"
class CryptoAddress < OpenStruct; end
class CryptoAddress < OpenStruct;
def method_missing(method_name, *args, &block)
if symbol = method_name[/(.*)\?\z/, 1]
self.cryptocurrency.to_s.downcase === symbol.to_s.downcase
else
super
end
end
end
toplevel_dir = File.dirname(File.dirname(__FILE__))
Thermite::Fiddle.load_module('init_openalias_rust',

View File

@ -5,6 +5,13 @@ RSpec.describe Openalias do
expect(Openalias::VERSION).not_to be nil
end
it "provides ? methods to check for the currency" do
expect(Openalias.addresses('donate.getmonero.org').find { |c| c.cryptocurrency.downcase == 'xmr' }.xmr?).to eql(true)
expect(Openalias.addresses('donate.getmonero.org').find { |c| c.cryptocurrency.downcase == 'xmr' }.btc?).to eql(false)
expect(Openalias.addresses('donate.getmonero.org').find(&:xmr?).xmr?).to eql(true)
expect(Openalias.addresses('donate.getmonero.org').find(&:xmr?).xmr).to eql(true)
end
it "provides accessors for the data" do
expect(Openalias.addresses('donate.getmonero.org')[0].recipient_name).to eql('Monero Development')
expect(Openalias.addresses('donate.getmonero.org').find { |c| c.cryptocurrency.downcase == 'xmr' }.address).to eql('44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A')