momm 0.0.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.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +118 -0
- data/Rakefile +16 -0
- data/bin/momm +72 -0
- data/lib/momm/calculator.rb +129 -0
- data/lib/momm/feeds/ecb.rb +67 -0
- data/lib/momm/memcached.rb +22 -0
- data/lib/momm/redis_store.rb +24 -0
- data/lib/momm/storage.rb +68 -0
- data/lib/momm/version.rb +3 -0
- data/lib/momm/web.rb +28 -0
- data/lib/momm.rb +92 -0
- data/momm.gemspec +30 -0
- data/myapp/.gitignore +16 -0
- data/myapp/Gemfile +10 -0
- data/myapp/README.rdoc +28 -0
- data/myapp/Rakefile +6 -0
- data/myapp/app/assets/images/.keep +0 -0
- data/myapp/app/assets/javascripts/application.js +15 -0
- data/myapp/app/assets/stylesheets/application.css +13 -0
- data/myapp/app/controllers/application_controller.rb +5 -0
- data/myapp/app/controllers/concerns/.keep +0 -0
- data/myapp/app/helpers/application_helper.rb +2 -0
- data/myapp/app/mailers/.keep +0 -0
- data/myapp/app/models/.keep +0 -0
- data/myapp/app/models/concerns/.keep +0 -0
- data/myapp/app/views/layouts/application.html.erb +14 -0
- data/myapp/bin/bundle +3 -0
- data/myapp/bin/rails +4 -0
- data/myapp/bin/rake +4 -0
- data/myapp/config/application.rb +28 -0
- data/myapp/config/boot.rb +4 -0
- data/myapp/config/environment.rb +5 -0
- data/myapp/config/environments/development.rb +26 -0
- data/myapp/config/environments/production.rb +80 -0
- data/myapp/config/environments/test.rb +36 -0
- data/myapp/config/initializers/backtrace_silencers.rb +7 -0
- data/myapp/config/initializers/filter_parameter_logging.rb +4 -0
- data/myapp/config/initializers/inflections.rb +16 -0
- data/myapp/config/initializers/mime_types.rb +5 -0
- data/myapp/config/initializers/momm.rb +2 -0
- data/myapp/config/initializers/secret_token.rb +12 -0
- data/myapp/config/initializers/session_store.rb +3 -0
- data/myapp/config/initializers/wrap_parameters.rb +9 -0
- data/myapp/config/locales/en.yml +23 -0
- data/myapp/config/routes.rb +5 -0
- data/myapp/config.ru +4 -0
- data/myapp/db/seeds.rb +7 -0
- data/myapp/lib/assets/.keep +0 -0
- data/myapp/lib/tasks/.keep +0 -0
- data/myapp/log/.keep +0 -0
- data/myapp/public/404.html +58 -0
- data/myapp/public/422.html +58 -0
- data/myapp/public/500.html +57 -0
- data/myapp/public/favicon.ico +0 -0
- data/myapp/public/robots.txt +5 -0
- data/myapp/vendor/assets/javascripts/.keep +0 -0
- data/myapp/vendor/assets/stylesheets/.keep +0 -0
- data/spec/momm/calculator_spec.rb +79 -0
- data/spec/momm/feeds/ecb_spec.rb +48 -0
- data/spec/momm/memcached_spec.rb +32 -0
- data/spec/momm/momm_spec.rb +21 -0
- data/spec/momm/redis_store_spec.rb +35 -0
- data/spec/momm/storage_spec.rb +37 -0
- data/spec/momm/version_spec.rb +7 -0
- data/spec/momm/web_spec.rb +31 -0
- data/spec/spec_helper.rb +11 -0
- metadata +235 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<style>
|
6
|
+
body {
|
7
|
+
background-color: #EFEFEF;
|
8
|
+
color: #2E2F30;
|
9
|
+
text-align: center;
|
10
|
+
font-family: arial, sans-serif;
|
11
|
+
}
|
12
|
+
|
13
|
+
div.dialog {
|
14
|
+
width: 25em;
|
15
|
+
margin: 4em auto 0 auto;
|
16
|
+
border: 1px solid #CCC;
|
17
|
+
border-right-color: #999;
|
18
|
+
border-left-color: #999;
|
19
|
+
border-bottom-color: #BBB;
|
20
|
+
border-top: #B00100 solid 4px;
|
21
|
+
border-top-left-radius: 9px;
|
22
|
+
border-top-right-radius: 9px;
|
23
|
+
background-color: white;
|
24
|
+
padding: 7px 4em 0 4em;
|
25
|
+
}
|
26
|
+
|
27
|
+
h1 {
|
28
|
+
font-size: 100%;
|
29
|
+
color: #730E15;
|
30
|
+
line-height: 1.5em;
|
31
|
+
}
|
32
|
+
|
33
|
+
body > p {
|
34
|
+
width: 33em;
|
35
|
+
margin: 0 auto 1em;
|
36
|
+
padding: 1em 0;
|
37
|
+
background-color: #F7F7F7;
|
38
|
+
border: 1px solid #CCC;
|
39
|
+
border-right-color: #999;
|
40
|
+
border-bottom-color: #999;
|
41
|
+
border-bottom-left-radius: 4px;
|
42
|
+
border-bottom-right-radius: 4px;
|
43
|
+
border-top-color: #DADADA;
|
44
|
+
color: #666;
|
45
|
+
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
46
|
+
}
|
47
|
+
</style>
|
48
|
+
</head>
|
49
|
+
|
50
|
+
<body>
|
51
|
+
<!-- This file lives in public/422.html -->
|
52
|
+
<div class="dialog">
|
53
|
+
<h1>The change you wanted was rejected.</h1>
|
54
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
55
|
+
</div>
|
56
|
+
<p>If you are the application owner check the logs for more information.</p>
|
57
|
+
</body>
|
58
|
+
</html>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<style>
|
6
|
+
body {
|
7
|
+
background-color: #EFEFEF;
|
8
|
+
color: #2E2F30;
|
9
|
+
text-align: center;
|
10
|
+
font-family: arial, sans-serif;
|
11
|
+
}
|
12
|
+
|
13
|
+
div.dialog {
|
14
|
+
width: 25em;
|
15
|
+
margin: 4em auto 0 auto;
|
16
|
+
border: 1px solid #CCC;
|
17
|
+
border-right-color: #999;
|
18
|
+
border-left-color: #999;
|
19
|
+
border-bottom-color: #BBB;
|
20
|
+
border-top: #B00100 solid 4px;
|
21
|
+
border-top-left-radius: 9px;
|
22
|
+
border-top-right-radius: 9px;
|
23
|
+
background-color: white;
|
24
|
+
padding: 7px 4em 0 4em;
|
25
|
+
}
|
26
|
+
|
27
|
+
h1 {
|
28
|
+
font-size: 100%;
|
29
|
+
color: #730E15;
|
30
|
+
line-height: 1.5em;
|
31
|
+
}
|
32
|
+
|
33
|
+
body > p {
|
34
|
+
width: 33em;
|
35
|
+
margin: 0 auto 1em;
|
36
|
+
padding: 1em 0;
|
37
|
+
background-color: #F7F7F7;
|
38
|
+
border: 1px solid #CCC;
|
39
|
+
border-right-color: #999;
|
40
|
+
border-bottom-color: #999;
|
41
|
+
border-bottom-left-radius: 4px;
|
42
|
+
border-bottom-right-radius: 4px;
|
43
|
+
border-top-color: #DADADA;
|
44
|
+
color: #666;
|
45
|
+
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
46
|
+
}
|
47
|
+
</style>
|
48
|
+
</head>
|
49
|
+
|
50
|
+
<body>
|
51
|
+
<!-- This file lives in public/500.html -->
|
52
|
+
<div class="dialog">
|
53
|
+
<h1>We're sorry, but something went wrong.</h1>
|
54
|
+
</div>
|
55
|
+
<p>If you are the application owner check the logs for more information.</p>
|
56
|
+
</body>
|
57
|
+
</html>
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Momm::Calculator do
|
4
|
+
|
5
|
+
context 'redis store' do
|
6
|
+
let(:calc) { calc = Momm::Calculator.new Momm::RedisStore.new }
|
7
|
+
|
8
|
+
it 'should response to client' do
|
9
|
+
calc.should respond_to :client
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should response to update' do
|
13
|
+
calc.should respond_to :update
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should response to set_rate' do
|
17
|
+
calc.should respond_to :set_rate
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should response to get_rate_origin' do
|
21
|
+
calc.should respond_to :get_rate_origin
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should response to get_rate' do
|
25
|
+
calc.should respond_to :get_rate
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should response to exchange_rate' do
|
29
|
+
calc.should respond_to :exchange_rate
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should response to exchange' do
|
33
|
+
calc.should respond_to :exchange
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'memcached store' do
|
38
|
+
let(:calc) { Momm::Calculator.new }
|
39
|
+
|
40
|
+
it 'should response to client' do
|
41
|
+
calc.should respond_to :client
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should response to update' do
|
45
|
+
calc.should respond_to :update
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should response to set_rate' do
|
49
|
+
calc.should respond_to :set_rate
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should response to get_rate_origin' do
|
53
|
+
calc.should respond_to :get_rate_origin
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should response to get_rate' do
|
57
|
+
calc.should respond_to :get_rate
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should response to exchange_rate' do
|
61
|
+
calc.should respond_to :exchange_rate
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should response to exchange' do
|
65
|
+
calc.should respond_to :exchange
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should response to currencies' do
|
69
|
+
calc.should respond_to :currencies
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'feeds' do
|
74
|
+
it 'should not be nil' do
|
75
|
+
calc = Momm::Calculator.new
|
76
|
+
calc.feed.should_not be_nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Momm::Feeds::ECB do
|
4
|
+
context '#initialize' do
|
5
|
+
it "cannot call new method do" do
|
6
|
+
expect{
|
7
|
+
Momm::Feeds::ECB.new
|
8
|
+
}.to raise_error
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should eager loading the ECB instance" do
|
12
|
+
instance1 = Momm::Feeds::ECB.instance
|
13
|
+
instance2 = Momm::Feeds::ECB.instance
|
14
|
+
instance1.object_id.should == instance2.object_id
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe ".currencies" do
|
19
|
+
it 'should not be nil' do
|
20
|
+
Momm::Feeds::ECB.instance.currencies.should be_a(Array)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#fetching_url" do
|
25
|
+
it 'should not be nil' do
|
26
|
+
Momm::Feeds::ECB.instance.fetching_url.should be_a String
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#currency_rates" do
|
31
|
+
let(:rates) { Momm::Feeds::ECB.instance.currency_rates }
|
32
|
+
it 'should be an array' do
|
33
|
+
rates.should be_a Array
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should contain several elements' do
|
37
|
+
rates.length.should > 0
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should contain :date, :currency and :rates' do
|
41
|
+
rates.all?{
|
42
|
+
|rate| rate.has_key?(:date) &&
|
43
|
+
rate.has_key?(:currency) &&
|
44
|
+
rate.has_key?(:rate)
|
45
|
+
}.should be_true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Momm::Memcached do
|
4
|
+
context 'default configurations' do
|
5
|
+
|
6
|
+
it 'default options should be correct' do
|
7
|
+
Momm::Memcached::DEFAULT_OPTIONS.should == { connection: "localhost:11211", namespace: "momm", compress: true }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
context '#initialize' do
|
12
|
+
it 'can be initialized without params passed in' do
|
13
|
+
momm = Momm::Memcached.new
|
14
|
+
momm.client.should be_a(Dalli::Client)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'can be initialized' do
|
18
|
+
momm = Momm::Memcached.new connection: '127.0.0.1:12345'
|
19
|
+
momm.client.should be_a(Dalli::Client)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context '#set & #get' do
|
24
|
+
it 'can set and get' do
|
25
|
+
momm = Momm::Memcached.new
|
26
|
+
|
27
|
+
money = rand(20)
|
28
|
+
momm.set_rate :USD, money
|
29
|
+
momm.get_rate(:USD).should == money
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Momm do
|
4
|
+
context "Calculator delegation" do
|
5
|
+
it "should respond to exchange_rate" do
|
6
|
+
Momm.should respond_to :exchange_rate
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to exchange" do
|
10
|
+
Momm.should respond_to :exchange
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should respond to exchange_from_gbp_to_usd" do
|
14
|
+
Momm.should respond_to :exchange_from_gbp_to_usd
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should respond to exchange_rate_from_gbp_to_usd" do
|
18
|
+
Momm.should respond_to :exchange_rate_from_gbp_to_usd
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Momm::RedisStore do
|
4
|
+
context 'default configurations' do
|
5
|
+
it 'default options should be correct' do
|
6
|
+
Momm::RedisStore::DEFAULT_OPTIONS.should == {
|
7
|
+
host: "localhost", port: 6379, namespace: "momm"
|
8
|
+
}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
context '#initialize' do
|
13
|
+
it 'can be initialized without params passed in' do
|
14
|
+
momm = Momm::RedisStore.new
|
15
|
+
momm.client.should be_a(Redis::Namespace)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'can be initialized' do
|
19
|
+
momm = Momm::RedisStore.new host: "localhost",
|
20
|
+
port: 6379, namespace: "momm"
|
21
|
+
momm.client.should be_a(Redis::Namespace)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#set & #get' do
|
26
|
+
it 'can set and get' do
|
27
|
+
calc = Momm::Calculator.new Momm::RedisStore.new
|
28
|
+
|
29
|
+
money = rand(20)
|
30
|
+
|
31
|
+
calc.set_rate :USD, money
|
32
|
+
calc.get_rate(:USD).should == money
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Momm::Storage do
|
4
|
+
let(:storage) { Momm::Storage.new }
|
5
|
+
|
6
|
+
context "NotImplementedError" do
|
7
|
+
it "should apply to #client" do
|
8
|
+
expect{
|
9
|
+
storage.client
|
10
|
+
}.to raise_error
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should apply to #set_rate" do
|
14
|
+
expect{
|
15
|
+
storage.set_rate
|
16
|
+
}.to raise_error
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should apply to #get_rate" do
|
20
|
+
expect{
|
21
|
+
storage.get_rate
|
22
|
+
}.to raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should apply to #exchange_rate" do
|
26
|
+
expect{
|
27
|
+
storage.client
|
28
|
+
}.to raise_error
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should apply to #exchange_rate" do
|
32
|
+
expect{
|
33
|
+
storage.client
|
34
|
+
}.to raise_error
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'momm/web'
|
4
|
+
require 'rack/test'
|
5
|
+
|
6
|
+
describe Momm::Web do
|
7
|
+
include Rack::Test::Methods
|
8
|
+
|
9
|
+
def app
|
10
|
+
Momm::Web
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '/query' do
|
14
|
+
it 'should response' do
|
15
|
+
get '/query', money: 12, from: "GBP", to: "USD", date: "2014-3-10"
|
16
|
+
|
17
|
+
expect(last_response).to be_ok
|
18
|
+
expect(last_response.body).to eq("19.92")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '/currencies' do
|
23
|
+
it 'should response' do
|
24
|
+
get '/currencies'
|
25
|
+
|
26
|
+
expect(last_response).to be_ok
|
27
|
+
|
28
|
+
expect(JSON.parse(last_response.body)).to be_a Array
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,235 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: momm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jingkai He
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: redis
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.0.6
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.0.6
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redis-namespace
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.3.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.3.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: dalli
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.7.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.7.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.12.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.12.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sinatra
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: A Currency Exchange Calculator
|
126
|
+
email:
|
127
|
+
- jaxihe@gmail.com
|
128
|
+
executables:
|
129
|
+
- momm
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- ".gitignore"
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- bin/momm
|
139
|
+
- lib/momm.rb
|
140
|
+
- lib/momm/calculator.rb
|
141
|
+
- lib/momm/feeds/ecb.rb
|
142
|
+
- lib/momm/memcached.rb
|
143
|
+
- lib/momm/redis_store.rb
|
144
|
+
- lib/momm/storage.rb
|
145
|
+
- lib/momm/version.rb
|
146
|
+
- lib/momm/web.rb
|
147
|
+
- momm.gemspec
|
148
|
+
- myapp/.gitignore
|
149
|
+
- myapp/Gemfile
|
150
|
+
- myapp/README.rdoc
|
151
|
+
- myapp/Rakefile
|
152
|
+
- myapp/app/assets/images/.keep
|
153
|
+
- myapp/app/assets/javascripts/application.js
|
154
|
+
- myapp/app/assets/stylesheets/application.css
|
155
|
+
- myapp/app/controllers/application_controller.rb
|
156
|
+
- myapp/app/controllers/concerns/.keep
|
157
|
+
- myapp/app/helpers/application_helper.rb
|
158
|
+
- myapp/app/mailers/.keep
|
159
|
+
- myapp/app/models/.keep
|
160
|
+
- myapp/app/models/concerns/.keep
|
161
|
+
- myapp/app/views/layouts/application.html.erb
|
162
|
+
- myapp/bin/bundle
|
163
|
+
- myapp/bin/rails
|
164
|
+
- myapp/bin/rake
|
165
|
+
- myapp/config.ru
|
166
|
+
- myapp/config/application.rb
|
167
|
+
- myapp/config/boot.rb
|
168
|
+
- myapp/config/environment.rb
|
169
|
+
- myapp/config/environments/development.rb
|
170
|
+
- myapp/config/environments/production.rb
|
171
|
+
- myapp/config/environments/test.rb
|
172
|
+
- myapp/config/initializers/backtrace_silencers.rb
|
173
|
+
- myapp/config/initializers/filter_parameter_logging.rb
|
174
|
+
- myapp/config/initializers/inflections.rb
|
175
|
+
- myapp/config/initializers/mime_types.rb
|
176
|
+
- myapp/config/initializers/momm.rb
|
177
|
+
- myapp/config/initializers/secret_token.rb
|
178
|
+
- myapp/config/initializers/session_store.rb
|
179
|
+
- myapp/config/initializers/wrap_parameters.rb
|
180
|
+
- myapp/config/locales/en.yml
|
181
|
+
- myapp/config/routes.rb
|
182
|
+
- myapp/db/seeds.rb
|
183
|
+
- myapp/lib/assets/.keep
|
184
|
+
- myapp/lib/tasks/.keep
|
185
|
+
- myapp/log/.keep
|
186
|
+
- myapp/public/404.html
|
187
|
+
- myapp/public/422.html
|
188
|
+
- myapp/public/500.html
|
189
|
+
- myapp/public/favicon.ico
|
190
|
+
- myapp/public/robots.txt
|
191
|
+
- myapp/vendor/assets/javascripts/.keep
|
192
|
+
- myapp/vendor/assets/stylesheets/.keep
|
193
|
+
- spec/momm/calculator_spec.rb
|
194
|
+
- spec/momm/feeds/ecb_spec.rb
|
195
|
+
- spec/momm/memcached_spec.rb
|
196
|
+
- spec/momm/momm_spec.rb
|
197
|
+
- spec/momm/redis_store_spec.rb
|
198
|
+
- spec/momm/storage_spec.rb
|
199
|
+
- spec/momm/version_spec.rb
|
200
|
+
- spec/momm/web_spec.rb
|
201
|
+
- spec/spec_helper.rb
|
202
|
+
homepage: https://github.com/jaxi/momm
|
203
|
+
licenses:
|
204
|
+
- MIT
|
205
|
+
metadata: {}
|
206
|
+
post_install_message:
|
207
|
+
rdoc_options: []
|
208
|
+
require_paths:
|
209
|
+
- lib
|
210
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - ">="
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0'
|
215
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - ">="
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
220
|
+
requirements: []
|
221
|
+
rubyforge_project:
|
222
|
+
rubygems_version: 2.2.2
|
223
|
+
signing_key:
|
224
|
+
specification_version: 4
|
225
|
+
summary: A Currency Exchange Calculator
|
226
|
+
test_files:
|
227
|
+
- spec/momm/calculator_spec.rb
|
228
|
+
- spec/momm/feeds/ecb_spec.rb
|
229
|
+
- spec/momm/memcached_spec.rb
|
230
|
+
- spec/momm/momm_spec.rb
|
231
|
+
- spec/momm/redis_store_spec.rb
|
232
|
+
- spec/momm/storage_spec.rb
|
233
|
+
- spec/momm/version_spec.rb
|
234
|
+
- spec/momm/web_spec.rb
|
235
|
+
- spec/spec_helper.rb
|