schwab_rb 0.3.10 → 0.3.12
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b051569d86c70eaf117260fdc77f1926eb7c0bdf1141614903ac02f4bd834e6f
|
4
|
+
data.tar.gz: 3d7f8e02b966002399f23faba75559561827e080d13257da36f219cef2019464
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7076466bc502788b935e4fa239f44624a27c0a066c6b78be76af798efaa1181720710cd0b796b67a5a1003aac1d5b070739942a7cbed4b8daa0fe87b0c45bf01
|
7
|
+
data.tar.gz: 272af18823441bc12f778213d9c2589e7f35b0001f349b72b8df47ac0ae2d9f65aa8c30e3088aadc78c774b479ceed72a474ccdd762c6486f4db99c447dfb746
|
@@ -17,6 +17,37 @@ module SchwabRb
|
|
17
17
|
|
18
18
|
class RedirectServerExitedError < StandardError; end
|
19
19
|
|
20
|
+
class OS
|
21
|
+
def self.windows?
|
22
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.mac?
|
26
|
+
(/darwin/ =~ RUBY_PLATFORM) != nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.unix?
|
30
|
+
!windows?
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.linux?
|
34
|
+
unix? && !mac?
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.open_cmd
|
38
|
+
return "open" if mac?
|
39
|
+
return %w[start msedge] if windows?
|
40
|
+
|
41
|
+
"xdg-open"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class BrowserLauncher
|
46
|
+
def self.open(command)
|
47
|
+
`#{command.join(" ")}`
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
20
51
|
# class TokenExchangeError < StandardError
|
21
52
|
# def initialize(msg)
|
22
53
|
# super(msg)
|
@@ -100,7 +131,7 @@ module SchwabRb
|
|
100
131
|
gets
|
101
132
|
end
|
102
133
|
|
103
|
-
|
134
|
+
open_browser(requested_browser, auth_context.authorization_url)
|
104
135
|
|
105
136
|
timeout_time = Time.now + callback_timeout
|
106
137
|
received_url = nil
|
@@ -127,6 +158,17 @@ module SchwabRb
|
|
127
158
|
end
|
128
159
|
end
|
129
160
|
|
161
|
+
def self.open_browser(browser, url, browser_launcher: BrowserLauncher)
|
162
|
+
open_args = Array(OS.open_cmd)
|
163
|
+
if !browser.nil? && !browser.strip.empty? && OS.mac?
|
164
|
+
open_args << "-a"
|
165
|
+
open_args << browser.gsub(" ", "\\ ")
|
166
|
+
end
|
167
|
+
open_args << %("#{url}")
|
168
|
+
|
169
|
+
browser_launcher.open open_args
|
170
|
+
end
|
171
|
+
|
130
172
|
def self.create_ssl_certificate
|
131
173
|
key = OpenSSL::PKey::RSA.new(2048)
|
132
174
|
cert = OpenSSL::X509::Certificate.new
|
@@ -50,7 +50,7 @@ module SchwabRb
|
|
50
50
|
end_timestamp = (end_date.to_time + 24 * 60 * 60 - 1).to_i * 1000
|
51
51
|
|
52
52
|
@candles.select do |candle|
|
53
|
-
candle.
|
53
|
+
candle.datetime_ms >= start_timestamp && candle.datetime_ms <= end_timestamp
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -104,7 +104,7 @@ module SchwabRb
|
|
104
104
|
include Enumerable
|
105
105
|
|
106
106
|
class Candle
|
107
|
-
attr_reader :open, :high, :low, :close, :volume, :
|
107
|
+
attr_reader :open, :high, :low, :close, :volume, :datetime_ms
|
108
108
|
|
109
109
|
def initialize(data)
|
110
110
|
# Convert string keys to symbols if needed
|
@@ -114,7 +114,7 @@ module SchwabRb
|
|
114
114
|
@low = data[:low]
|
115
115
|
@close = data[:close]
|
116
116
|
@volume = data[:volume]
|
117
|
-
@
|
117
|
+
@datetime_ms = data[:datetime]
|
118
118
|
end
|
119
119
|
|
120
120
|
def to_h
|
@@ -124,16 +124,16 @@ module SchwabRb
|
|
124
124
|
low: @low,
|
125
125
|
close: @close,
|
126
126
|
volume: @volume,
|
127
|
-
datetime: @
|
127
|
+
datetime: @datetime_ms
|
128
128
|
}
|
129
129
|
end
|
130
130
|
|
131
|
-
def
|
132
|
-
Time.at(@
|
131
|
+
def datetime
|
132
|
+
Time.at(@datetime_ms / 1000.0) if @datetime_ms
|
133
133
|
end
|
134
134
|
|
135
135
|
def date
|
136
|
-
|
136
|
+
datetime&.to_date
|
137
137
|
end
|
138
138
|
|
139
139
|
def price_change
|
data/lib/schwab_rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schwab_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Platta
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-09-16 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: async
|