buda_api 1.0.0
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 +57 -0
- data/.rspec +3 -0
- data/.rubocop.yml +49 -0
- data/CHANGELOG.md +53 -0
- data/Gemfile +11 -0
- data/LICENSE +21 -0
- data/README.md +526 -0
- data/Rakefile +37 -0
- data/buda_api.gemspec +38 -0
- data/examples/.env.example +11 -0
- data/examples/authenticated_api_example.rb +213 -0
- data/examples/error_handling_example.rb +221 -0
- data/examples/public_api_example.rb +142 -0
- data/examples/trading_bot_example.rb +279 -0
- data/lib/buda_api/authenticated_client.rb +403 -0
- data/lib/buda_api/client.rb +248 -0
- data/lib/buda_api/constants.rb +163 -0
- data/lib/buda_api/errors.rb +60 -0
- data/lib/buda_api/logger.rb +99 -0
- data/lib/buda_api/models.rb +365 -0
- data/lib/buda_api/public_client.rb +231 -0
- data/lib/buda_api/version.rb +5 -0
- data/lib/buda_api.rb +81 -0
- metadata +194 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4a433f2896be92c5a860e32dd6d2ee0dcfe1de74cf5f6f49a9da3d60c9c63750
|
4
|
+
data.tar.gz: 2ac6836267f19130e6c130e96475cff7b98a6ea84d611ec3fdfd5a3b1c7aeba5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 898d29f2186c0072b78062e4e0c61bd37587cd3e666f4aab8b7182169f5a260e2218daab6e892fc51369d58f1c05f2cf3e9a8ea9aaa81271ec9ec5cefcea87c0
|
7
|
+
data.tar.gz: '05972086e7ce2168148375c016e8e937fcf42ad1c79426c5cd0c15dfd76c2dff074556c10bdf7bd2463341a3ea675a775b09e4314c521a4ce33dcd13ca7cdf64'
|
data/.gitignore
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Ignore build artifacts and dependencies
|
2
|
+
*.gem
|
3
|
+
*.rbc
|
4
|
+
/.config
|
5
|
+
/coverage/
|
6
|
+
/InstalledFiles
|
7
|
+
/pkg/
|
8
|
+
/spec/reports/
|
9
|
+
/spec/examples.txt
|
10
|
+
/test/tmp/
|
11
|
+
/test/version_tmp/
|
12
|
+
/tmp/
|
13
|
+
|
14
|
+
# Documentation
|
15
|
+
/doc/
|
16
|
+
/.yardoc/
|
17
|
+
|
18
|
+
# IDE files
|
19
|
+
.vscode/
|
20
|
+
.idea/
|
21
|
+
*.swp
|
22
|
+
*.swo
|
23
|
+
|
24
|
+
# Environment files
|
25
|
+
.env
|
26
|
+
.env.local
|
27
|
+
.env.production
|
28
|
+
|
29
|
+
# Bundler
|
30
|
+
.bundle/
|
31
|
+
vendor/
|
32
|
+
|
33
|
+
# RSpec
|
34
|
+
.rspec_status
|
35
|
+
|
36
|
+
# VCR cassettes (may contain sensitive data)
|
37
|
+
spec/fixtures/vcr_cassettes/
|
38
|
+
|
39
|
+
# OS generated files
|
40
|
+
.DS_Store
|
41
|
+
.DS_Store?
|
42
|
+
._*
|
43
|
+
.Spotlight-V100
|
44
|
+
.Trashes
|
45
|
+
ehthumbs.db
|
46
|
+
Thumbs.db
|
47
|
+
|
48
|
+
# Logs
|
49
|
+
*.log
|
50
|
+
|
51
|
+
# Ruby version managers
|
52
|
+
.ruby-version
|
53
|
+
.ruby-gemset
|
54
|
+
.rvmrc
|
55
|
+
|
56
|
+
# Local development
|
57
|
+
/local_examples/
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# RuboCop configuration
|
2
|
+
# This file contains the configuration for RuboCop, a Ruby static code analyzer
|
3
|
+
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.7
|
6
|
+
Exclude:
|
7
|
+
- 'vendor/**/*'
|
8
|
+
- 'spec/fixtures/**/*'
|
9
|
+
- 'tmp/**/*'
|
10
|
+
|
11
|
+
# Disable some rules that are too strict for this project
|
12
|
+
Layout/LineLength:
|
13
|
+
Max: 100
|
14
|
+
Exclude:
|
15
|
+
- 'examples/**/*'
|
16
|
+
|
17
|
+
Style/Documentation:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
Style/StringLiterals:
|
21
|
+
EnforcedStyle: double_quotes
|
22
|
+
|
23
|
+
Style/FrozenStringLiteralComment:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
Metrics/BlockLength:
|
27
|
+
Exclude:
|
28
|
+
- 'spec/**/*'
|
29
|
+
- 'examples/**/*'
|
30
|
+
- '*.gemspec'
|
31
|
+
|
32
|
+
Metrics/MethodLength:
|
33
|
+
Max: 20
|
34
|
+
Exclude:
|
35
|
+
- 'examples/**/*'
|
36
|
+
|
37
|
+
Metrics/ClassLength:
|
38
|
+
Max: 200
|
39
|
+
|
40
|
+
Metrics/ModuleLength:
|
41
|
+
Max: 200
|
42
|
+
|
43
|
+
Style/ClassAndModuleChildren:
|
44
|
+
Enabled: false
|
45
|
+
|
46
|
+
# Allow long parameter lists in examples
|
47
|
+
Metrics/ParameterLists:
|
48
|
+
Exclude:
|
49
|
+
- 'examples/**/*'
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## [1.0.0] - 2024-10-07
|
9
|
+
|
10
|
+
### Added
|
11
|
+
- Initial release of Buda API Ruby SDK
|
12
|
+
- Complete public API coverage:
|
13
|
+
- Market data (markets, tickers, order books, trades)
|
14
|
+
- Quotations and price calculations
|
15
|
+
- Historical reports (average prices, candlesticks)
|
16
|
+
- Complete authenticated API coverage:
|
17
|
+
- Account balances and balance events
|
18
|
+
- Order management (place, cancel, batch operations)
|
19
|
+
- Transfer management (deposits, withdrawals)
|
20
|
+
- Order history and pagination
|
21
|
+
- Comprehensive error handling with specific exception classes
|
22
|
+
- Debug logging with detailed HTTP request/response information
|
23
|
+
- Automatic retry logic with exponential backoff
|
24
|
+
- HMAC-SHA384 authentication with automatic signature generation
|
25
|
+
- Rich data models with helper methods and type safety
|
26
|
+
- Extensive documentation and examples
|
27
|
+
- Trading bot example with price monitoring
|
28
|
+
- Configuration management system
|
29
|
+
- Rate limiting handling
|
30
|
+
|
31
|
+
### Security
|
32
|
+
- Secure HMAC authentication implementation
|
33
|
+
- Proper API key validation
|
34
|
+
- Safe parameter handling and validation
|
35
|
+
|
36
|
+
### Documentation
|
37
|
+
- Complete API reference documentation
|
38
|
+
- Comprehensive README with examples
|
39
|
+
- Inline code documentation
|
40
|
+
- Multiple usage examples including:
|
41
|
+
- Public API usage
|
42
|
+
- Authenticated API usage
|
43
|
+
- Error handling and debugging
|
44
|
+
- Advanced trading bot implementation
|
45
|
+
|
46
|
+
## [Unreleased]
|
47
|
+
|
48
|
+
### Planned
|
49
|
+
- WebSocket API support for real-time data
|
50
|
+
- Advanced order types support
|
51
|
+
- Portfolio management utilities
|
52
|
+
- Performance optimizations
|
53
|
+
- Additional trading strategy examples
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024 PabloB07 API Ruby SDK Contributors
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|