redis-bank 0.0.2 → 0.1.1
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.
- data/README.md +5 -4
- data/lib/redis-bank.rb +7 -2
- metadata +76 -10
data/README.md
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
Redis-Bank
|
2
2
|
==========
|
3
3
|
|
4
|
-
A Redis-backed
|
4
|
+
A Redis-backed Bank for the {https://github.com/RubyMoney/money Money} gem.
|
5
|
+
|
6
|
+
See {Money::Bank::RedisBank} for details.
|
5
7
|
|
6
8
|
Usage
|
7
9
|
-----
|
8
10
|
|
9
11
|
```ruby
|
10
12
|
redis_client = Redis.new
|
11
|
-
# Or, if you'd rather just test it out without firing up redis,
|
12
|
-
# you can just use a hash, e.g.
|
13
|
-
# redis_client = {}
|
14
13
|
Money.bank = Money::Bank::RedisBank.new redis_client
|
15
14
|
Money.bank.add_rate("USD", "CAD", 1.24515)
|
16
15
|
Money.bank.add_rate("CAD", "USD", 0.803115)
|
17
16
|
Money.us_dollar(100).exchange_to("CAD") => Money.ca_dollar(124)
|
18
17
|
Money.ca_dollar(100).exchange_to("USD") => Money.us_dollar(80)
|
18
|
+
Money.bank.rates => {"EXCHANGE_RATE_USD_TO_CAD" => 1.24515,
|
19
|
+
"EXCHANGE_RATE_CAD_TO_USD" => 0.803115}
|
19
20
|
```
|
data/lib/redis-bank.rb
CHANGED
@@ -29,6 +29,11 @@ class Money
|
|
29
29
|
@redis_client = redis_client
|
30
30
|
end
|
31
31
|
|
32
|
+
# hash of exchange rates
|
33
|
+
def rates
|
34
|
+
@redis_client.mapped_mget *@redis_client.keys("exchange_rate_*")
|
35
|
+
end
|
36
|
+
|
32
37
|
# Exchanges the given +Money+ object to a new +Money+ object in
|
33
38
|
# +to_currency+.
|
34
39
|
#
|
@@ -143,9 +148,9 @@ class Money
|
|
143
148
|
# @return [String]
|
144
149
|
#
|
145
150
|
# @example
|
146
|
-
# rate_key_for("USD", "CAD") #=> "
|
151
|
+
# rate_key_for("USD", "CAD") #=> "exchange_rate_usd_to_cad"
|
147
152
|
def rate_key_for(from, to)
|
148
|
-
"#{Currency.wrap(from).iso_code}_TO_#{Currency.wrap(to).iso_code}".
|
153
|
+
"EXCHANGE_RATE_#{Currency.wrap(from).iso_code}_TO_#{Currency.wrap(to).iso_code}".downcase
|
149
154
|
end
|
150
155
|
end
|
151
156
|
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis-bank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
8
|
+
- 1
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Cameron Walsh
|
@@ -14,45 +15,106 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2012-06-
|
18
|
-
default_executable:
|
18
|
+
date: 2012-06-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: money
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
version: "0"
|
30
32
|
type: :runtime
|
31
33
|
version_requirements: *id001
|
32
34
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
35
|
+
name: money
|
34
36
|
prerelease: false
|
35
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
36
39
|
requirements:
|
37
40
|
- - ">="
|
38
41
|
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
39
43
|
segments:
|
40
44
|
- 0
|
41
45
|
version: "0"
|
42
46
|
type: :development
|
43
47
|
version_requirements: *id002
|
44
48
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
49
|
+
name: rake
|
46
50
|
prerelease: false
|
47
51
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
48
53
|
requirements:
|
49
54
|
- - ">="
|
50
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
51
57
|
segments:
|
52
58
|
- 0
|
53
59
|
version: "0"
|
54
60
|
type: :development
|
55
61
|
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: simplecov
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
type: :development
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: yard
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
type: :development
|
103
|
+
version_requirements: *id006
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: redis
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
116
|
+
type: :development
|
117
|
+
version_requirements: *id007
|
56
118
|
description: Redis-backed Bank for the Money gem based on the VariableExchangeBank
|
57
119
|
email: cameron.walsh@gmail.com
|
58
120
|
executables: []
|
@@ -66,7 +128,6 @@ files:
|
|
66
128
|
- LICENSE.txt
|
67
129
|
- init.rb
|
68
130
|
- lib/redis-bank.rb
|
69
|
-
has_rdoc: true
|
70
131
|
homepage: http://github.com/cwalsh/redis-bank
|
71
132
|
licenses: []
|
72
133
|
|
@@ -76,25 +137,30 @@ rdoc_options: []
|
|
76
137
|
require_paths:
|
77
138
|
- lib
|
78
139
|
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
79
141
|
requirements:
|
80
142
|
- - ">="
|
81
143
|
- !ruby/object:Gem::Version
|
144
|
+
hash: 3
|
82
145
|
segments:
|
83
146
|
- 0
|
84
147
|
version: "0"
|
85
148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
86
150
|
requirements:
|
87
151
|
- - ">="
|
88
152
|
- !ruby/object:Gem::Version
|
153
|
+
hash: 3
|
89
154
|
segments:
|
90
155
|
- 0
|
91
156
|
version: "0"
|
92
157
|
requirements: []
|
93
158
|
|
94
159
|
rubyforge_project:
|
95
|
-
rubygems_version: 1.
|
160
|
+
rubygems_version: 1.8.24
|
96
161
|
signing_key:
|
97
162
|
specification_version: 3
|
98
163
|
summary: Redis-backed Bank for the Money gem
|
99
164
|
test_files: []
|
100
165
|
|
166
|
+
has_rdoc: yard
|