nbp_exchange 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
| @@ -2,9 +2,13 @@ | |
| 2 2 | 
             
            module NbpExchange
         | 
| 3 3 |  | 
| 4 4 | 
             
              class Currency
         | 
| 5 | 
            -
                 | 
| 5 | 
            +
                SymbolsNames = {
         | 
| 6 6 | 
             
                  'eur' => 'Euro',
         | 
| 7 | 
            -
                  'usd' => 'Dolar amerykański'
         | 
| 7 | 
            +
                  'usd' => 'Dolar amerykański',
         | 
| 8 | 
            +
                  'chf' => 'Frank szwajcarski',
         | 
| 9 | 
            +
                  'gbp' => 'Funt szterling',
         | 
| 10 | 
            +
                  'czk' => 'Korona czeska',
         | 
| 11 | 
            +
                  'jpy' => 'jen (Japonia)'
         | 
| 8 12 | 
             
                }
         | 
| 9 13 |  | 
| 10 14 | 
             
                attr_reader :symbol
         | 
| @@ -14,11 +18,11 @@ module NbpExchange | |
| 14 18 | 
             
                end
         | 
| 15 19 |  | 
| 16 20 | 
             
                def name
         | 
| 17 | 
            -
                  @name ||=  | 
| 21 | 
            +
                  @name ||= SymbolsNames[symbol]
         | 
| 18 22 | 
             
                end
         | 
| 19 23 |  | 
| 20 24 | 
             
                def rate(date)
         | 
| 21 | 
            -
                  @rate  | 
| 25 | 
            +
                  @rate = load_rate(date)
         | 
| 22 26 | 
             
                end
         | 
| 23 27 |  | 
| 24 28 | 
             
                def self.available_currency_keys
         | 
| @@ -16,7 +16,10 @@ module NbpExchange | |
| 16 16 | 
             
                def xml_name
         | 
| 17 17 | 
             
                  page = open(dir_url)
         | 
| 18 18 | 
             
                  doc = Nokogiri::HTML(page.read)
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 | 
            +
                  date_row = doc.text[/^#{@date.to_s}.+/]
         | 
| 21 | 
            +
                  name = date_row ? date_row[/(\w+.xml)/, 1] : nil
         | 
| 22 | 
            +
             | 
| 20 23 | 
             
                  raise NoXMLForThisDate if name.nil? || name.empty?
         | 
| 21 24 | 
             
                  name
         | 
| 22 25 | 
             
                end
         | 
    
        data/lib/nbp_exchange/version.rb
    CHANGED
    
    
| @@ -12,11 +12,23 @@ module NbpExchange | |
| 12 12 | 
             
                end
         | 
| 13 13 |  | 
| 14 14 | 
             
                describe "#rate" do
         | 
| 15 | 
            -
                   | 
| 15 | 
            +
                  context "When rate exists" do
         | 
| 16 | 
            +
                    let(:expected){Rate.new(currency, EXCHANGE_DATE, 4.4146)}
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    it "should return average rate for given date" do
         | 
| 19 | 
            +
                      r = currency.rate(EXCHANGE_DATE)
         | 
| 20 | 
            +
                      r.average_exchange_rate.should == expected.average_exchange_rate
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  context "when rate doesn't exists for this date" do
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    it "should raise error" do
         | 
| 27 | 
            +
                      lambda {
         | 
| 28 | 
            +
                        r = currency.rate("2001-01-01")
         | 
| 29 | 
            +
                      }.should raise_error(NbpExchange::NoXMLForThisDate)
         | 
| 30 | 
            +
                    end
         | 
| 16 31 |  | 
| 17 | 
            -
                  it "should return average rate for given date" do
         | 
| 18 | 
            -
                    r = currency.rate(EXCHANGE_DATE)
         | 
| 19 | 
            -
                    r.average_exchange_rate.should == expected.average_exchange_rate
         | 
| 20 32 | 
             
                  end
         | 
| 21 33 | 
             
                end
         | 
| 22 34 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: nbp_exchange
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011-11- | 
| 12 | 
            +
            date: 2011-11-09 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: nokogiri
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &2157147220 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *2157147220
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: rspec
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &2157145600 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '0'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *2157145600
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: vcr
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &2157144260 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *2157144260
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: fakeweb
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &2157143560 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,7 +54,7 @@ dependencies: | |
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
              type: :development
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *2157143560
         | 
| 58 58 | 
             
            description: ! 'Get average exchange rate for PLN polski zloty from specific date.
         | 
| 59 59 | 
             
              This lib wraps http://rss.nbp.pl/kursy/xml2/2011/a/dir.aspx site. '
         | 
| 60 60 | 
             
            email:
         |