lib/bidu/house/report.rb in bidu-house-0.2.1 vs lib/bidu/house/report.rb in bidu-house-1.0.0

- old
+ new

@@ -1,7 +1,51 @@ module Bidu module House - module Report + class Report + include JsonParser require 'bidu/house/report/error' + ALLOWED_PARAMETERS = [] + DEFAULT_OPTION = {} + + attr_reader :json + + json_parse :period, type: :period + json_parse :clazz, :base_scope, case: :snake + + def initialize(options) + @json = DEFAULT_OPTION.merge(options) + end + + def status + @status ||= error? ? :error : :ok + end + + def error? + raise 'Not implemented yet' + end + + def as_json + { status: status } + end + + private + + def fetch_scoped(base, scope) + if (scope.is_a?(Symbol)) + scope.to_s.split('.').inject(base) do |entries, method| + entries.public_send(method) + end + else + base.where(scope) + end + end + + def last_entries + @last_entries ||= base.where('updated_at >= ?', period.seconds.ago) + end + + def base + fetch_scoped(clazz, base_scope) + end end end end