class MixReader::Base
Constants
- MIXPANEL_JQL_URL
Attributes
filters[RW]
options[RW]
script[RW]
Public Class Methods
new(args)
click to toggle source
# File lib/mix_reader/base.rb, line 18 def initialize(args) raise "can not instantiate base class" if class_name == "Base" @filters = args end
query(args)
click to toggle source
# File lib/mix_reader/base.rb, line 11 def query(args) raise "invalid arguments" unless args.is_a?(Hash) new(args).query end
Public Instance Methods
query()
click to toggle source
# File lib/mix_reader/base.rb, line 23 def query build_script build_options query_and_init_objects end
Private Instance Methods
api_secret()
click to toggle source
# File lib/mix_reader/base.rb, line 63 def api_secret MixReader::configuration.api_secret end
build_options()
click to toggle source
# File lib/mix_reader/base.rb, line 47 def build_options @options = { basic_auth: { username: api_secret }, body: { script: script } } end
class_name()
click to toggle source
# File lib/mix_reader/base.rb, line 59 def class_name self.class.name.split("::").last end
m_key(key)
click to toggle source
# File lib/mix_reader/base.rb, line 54 def m_key(key) return key unless key[0] >= 'a' && key[0] <= 'z' '$' + key end
query_and_init_objects()
click to toggle source
# File lib/mix_reader/base.rb, line 31 def query_and_init_objects response = send_request data = response.parsed_response data.map do |item| item_data = item["properties"] h = {} item_data.each{ |k, v| h[k[1..-1]] = v if k[0] == '$' } item_data["class_name"] = class_name item_data end end
send_request()
click to toggle source
# File lib/mix_reader/base.rb, line 43 def send_request self.class.send("post", MIXPANEL_JQL_URL, @options) end