Hakan Ensari
dd454a43ea
Fix Rubocop failures
2019-12-20 01:15:34 +00:00
Hakan Ensari
94bb47ba6e
Add SimpleCov
2019-11-22 14:56:04 +00:00
Hakan Ensari
f62426797d
Handle interval where base is missing on older dates
2019-05-02 20:36:35 +01:00
Hakan Ensari
6c48bcadbe
Yank content from server
2019-04-25 16:58:29 +01:00
Hakan Ensari
c1e1644c52
Implement currencies endpoint
2018-10-10 13:55:55 +01:00
Hakan Ensari
cf373f3efb
Denormalise database schema
...
This way, we will have no issue fitting the entire dataset on the free tier of Heroku
2018-10-07 01:08:45 +01:00
Hakan Ensari
339ccbd743
Don't test daemon
2018-10-07 01:08:45 +01:00
Hakan Ensari
fb44818efb
Implement fork-based daemon for scheduling jobs
...
Extracted from
https://github.com/discourse/discourse/blob/master/lib/demon/sidekiq.rb
2018-10-07 01:08:45 +01:00
Hakan Ensari
4df1d794c2
Don't return empty hashes
...
This happened when rebasing and converting to unavailable currencies. For instance, the following was returning empty hashes for dates prior to the release of the new Turkish Lira:
https://frankfurter.app/1999-01-01..?from=USD&to=TRY
2018-09-21 20:20:56 +01:00
Hakan Ensari
2b53906e41
Get time period up to the present
2018-09-18 13:16:10 +01:00
Hakan Ensari
d107134548
Upcase symbols
2018-09-18 12:56:11 +01:00
Hakan Ensari
c6a04ae694
Fix ECB url
2018-09-11 18:05:14 +01:00
Hakan Ensari
a96e56808e
Implement time series
...
... along with some minor miscellaneous refactoring
This finally completes fixerAPI/fixer#22
2018-07-05 21:30:17 +01:00
Hakan Ensari
95d63c143f
Refactor tasks that fetch rates
2018-06-08 15:32:52 +01:00
Hakan Ensari
2c91173ecf
Rebrand, serve HTML
2018-06-08 15:32:52 +01:00
Hakan Ensari
a0a981e897
Use ON CONFLICT when fetching all records
2018-03-22 08:49:32 +00:00
Hakan Ensari
fc98543702
Fix quoting amount to specific currency when base is Euro
2018-03-17 14:26:59 +00:00
Hakan Ensari
c13208c644
Fix broken test
2018-03-09 00:01:34 +00:00
Hakan Ensari
cfbb4ac4ac
Repack app
...
I'm moving my company's server to a private location now that I have sold the domain. While prepping for this, I've done some cleanup and also threw in changes I had lingering on my hard drive.
- Run a single database query instead of two
- Fold the gem into the app and use Ox instead of REXML
- Simplify error handling logic
- Relax throttling
2018-03-08 23:51:36 +00:00
Hakan Ensari
3319c49dca
Spring clean code base
...
- Bump ruby version
- Remove obsolete files, including deploy artefacts
- Don't use pride when testing
- Store gem and app in same repo
- Switch to asdf
2017-11-09 23:30:13 +00:00
Hakan Ensari
b05ed02b5e
Remove app version
2017-06-14 23:01:27 +01:00
Hakan Ensari
40b4e39465
Rubocop fixes
2017-06-14 23:01:27 +01:00
Hakan Ensari
b616346701
Move symbol filtering to Quote
2017-01-10 12:44:22 +00:00
Hakan Ensari
e5cb17d0b9
Drop caching
2017-01-10 12:21:19 +00:00
Hakan Ensari
11f3ddb0e4
Don't override RACK_ENV
2017-01-10 12:06:03 +00:00
Hakan Ensari
4dd1acec95
Use rack-cache
2017-01-10 12:06:03 +00:00
Hakan Ensari
7504abe6b4
Remove unnecessary empty lines
2017-01-10 12:06:03 +00:00
Hakan Ensari
3fdae1090b
Always set Content-Type to JSON
...
Fixes #45
2017-01-08 23:21:57 +00:00
Hakan Ensari
7b653b1fd8
Cache responses
2017-01-08 23:21:56 +00:00
Hakan Ensari
60f980a6ee
Fold conversion into quote
2017-01-03 12:44:13 +00:00
Hakan Ensari
4a1f4ca3c1
Use Rubocop and fix existing offences
2017-01-03 12:36:05 +00:00
Vincent Durand
ad64574745
Add GET #converter API route
...
It adds a quote helper which return the Quote instance
to be injected, and uses this new object for the quote's attributes.
2016-09-22 18:53:31 +02:00
Vincent Durand
46dbb66b0f
Implement Converter
...
The API is fairly simple in order to get straight to the goal, convert
an amount from a currency to another.
I used the proposal from #25 which is similar to the google currency
tool.
2016-09-22 18:51:27 +02:00
Hakan Ensari
2bb4aeb497
Configure rack cors
2016-06-08 14:49:43 +01:00
Hakan Ensari
250095d262
Use rack-cors
...
We will only return Access-Control headers if request includes an
Origin header
Fixes #18
2016-05-09 11:51:54 +01:00
Hakan Ensari
07781b6d76
Use Oj to generate JSON
...
Warming up --------------------------------------
json 16.465k i/100ms
yajl 18.574k i/100ms
oj 34.073k i/100ms
Calculating -------------------------------------
json 182.828k (± 7.8%) i/s - 922.040k in
5.075699s
yajl 196.839k (± 4.5%) i/s - 984.422k in
5.011087s
oj 384.813k (± 5.9%) i/s - 1.942M in
5.065475s
Comparison:
oj: 384813.2 i/s
yajl: 196839.0 i/s - 1.95x slower
json: 182827.5 i/s - 2.10x slower
2016-05-09 11:51:54 +01:00
Hakan Ensari
92ed532543
Fix OPTIONS requests
...
#18
2016-04-25 19:10:15 +01:00
Hakan Ensari
702f6ac9aa
Refactor internals
...
- Removed yajl-ruby
- Removed sinatra-jsonp
- Inlined #halt_with_message
- Added last_modified header to root path
2016-04-24 17:15:02 +01:00
Hakan Ensari
59df76477e
Further refactor cross-origin
...
- Add all [required
headers](https://github.com/britg/sinatra-cross_origin/blob/master/lib/s
inatra/cross_origin.rb#L51-L58)
- Respond to preflight requests
#18
2016-04-24 16:19:36 +01:00
Hakan Ensari
1d059cd049
Refactor cross-origin
...
- Drop cross_origin gem
- Add header to all responses
#18
2016-04-24 15:39:08 +01:00
Hakan Ensari
b6b697872e
Set TargetRubyVersion to 2.3 in Rubocop
2016-04-11 15:05:15 +01:00
Hakan Ensari
9d0ed94abe
Refactor quote validation
2016-04-11 14:40:24 +01:00
Hakan Ensari
be1dcce266
Set default date at run time
...
Fixes #11
2015-09-15 12:02:49 +01:00
Hakan Ensari
b35d1e4420
Add missing slash
2015-09-15 12:01:35 +01:00
Hakan Ensari
5094956f7c
Add Last Modified header
2015-09-15 12:01:16 +01:00
Hakan Ensari
15e8d8b19b
Round to five significant digits
...
Fixes #10
2015-09-02 22:12:42 +01:00
Hakan Ensari
ddc0439340
Revert custom error
2015-09-02 22:11:57 +01:00
Hakan Ensari
62f1ab2237
Use custom error
2015-09-01 13:04:29 +01:00
Hakan Ensari
60719cd215
Refactor Quote
2015-08-31 10:56:01 +01:00
Hakan Ensari
1c128eb84c
Convert Snapshot into value object
2015-08-30 11:54:49 +01:00