Class: TradingviewScreener::ScreenData::Converter
- Inherits:
-
Object
- Object
- TradingviewScreener::ScreenData::Converter
- Defined in:
- lib/tradingview_screener/screen_data.rb
Constant Summary collapse
- COLUMN_MAP =
{ "Price" => "close", "Change" => "change", "Volume" => "volume", "MarketCap" => "market_cap_basic", "PriceToEarnings" => "price_earnings_ttm", "EpsDiluted" => "earnings_per_share_diluted_ttm", "EpsDilutedGrowth" => "earnings_per_share_diluted_yoy_growth_ttm", "DividendsYield" => "dividends_yield_current", "Sector" => "sector", "AnalystRating" => "AnalystRating", "PreMarketChange" => "premarket_change", "PreMarketVolume" => "premarket_volume", "PreMarketGap" => "premarket_gap", "TickerUniversal" => "ticker-view", "RelativeVolume" => "relative_volume_10d_calc", "RelativeVolumeAtTime" => "relative_volume_intraday|5", "AverageTrueRangePercent" => "ATRP", "PriceAvgVolume" => "AvgValue.Traded_10d", "AverageVolume" => "average_volume_10d_calc", "Performance" => "Perf.W", "RevenueGrowth" => "total_revenue_yoy_growth_ttm", "PriceToEarningsToGrowth" => "price_earnings_growth_ttm", "ReturnOnEquity" => "return_on_equity", "Beta" => "beta_1_year", "Ma" => "SMA" }.freeze
- SORT_MAP =
{ "PreMarketVolume" => "premarket_volume", "MarketCap" => "market_cap_basic", "Volume" => "volume", "Change" => "change", "Price" => "close", "PreMarketChange" => "premarket_change", "RelativeVolume" => "relative_volume_10d_calc" }.freeze
- DEFAULT_COLUMNS =
%w[ ticker-view close type typespecs pricescale minmov fractional minmove2 currency change volume relative_volume_10d_calc market_cap_basic fundamental_currency_code price_earnings_ttm earnings_per_share_diluted_ttm earnings_per_share_diluted_yoy_growth_ttm dividends_yield_current sector.tr market sector AnalystRating AnalystRating.tr premarket_change premarket_volume ].freeze
Instance Method Summary collapse
-
#initialize(screen_data) ⇒ Converter
constructor
A new instance of Converter.
- #to_payload ⇒ Object
Constructor Details
#initialize(screen_data) ⇒ Converter
Returns a new instance of Converter.
121 122 123 |
# File 'lib/tradingview_screener/screen_data.rb', line 121 def initialize(screen_data) @data = deep_stringify(screen_data) end |
Instance Method Details
#to_payload ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/tradingview_screener/screen_data.rb', line 125 def to_payload markets = Array(@data.dig("market_settings", "markets")) markets = ["america"] if markets.empty? filters = convert_filters(Array(@data["filters"])) if @data.dig("market_settings", "is_primary_listing") filters << { "left" => "is_primary", "operation" => "equal", "right" => true } end { "markets" => markets, "symbols" => {}, "options" => { "lang" => "en" }, "columns" => convert_columns(Array(@data["default_custom_column_set"])), "filter" => filters, "filter2" => deep_dup(Relation::STOCK_TYPE_FILTER2), "sort" => convert_sort, "range" => [0, 100], "ignore_unknown_fields" => false, "meta" => { "id" => @data["id"], "title" => @data["title"], "version" => @data["version"], "date_created" => @data["date_created"], "date_updated" => @data["date_updated"], "date_used" => @data["date_used"] }.compact } end |