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 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
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color
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
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem "rake", "~> 13.0"
6
+ gem "rspec", "~> 3.0"
7
+ gem "webmock", "~> 3.0"
8
+ gem "vcr", "~> 6.0"
9
+ gem "rubocop", "~> 1.0"
10
+ gem "yard", "~> 0.9"
11
+ gem "dotenv", "~> 2.8"
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.