Sha256: ee828f9eeaf2a417374a8f51bb04e669b35f1d69e9eaa817e2cece21b8f24560

Contents?: true

Size: 897 Bytes

Versions: 3

Compression:

Stored size: 897 Bytes

Contents

# frozen_string_literal: true

require 're_sorcery/version'
require 're_sorcery/error'
require 're_sorcery/arg_check'
require 're_sorcery/maybe'
require 're_sorcery/result'
require 're_sorcery/helpers'
require 're_sorcery/decoder'
require 're_sorcery/fielded'
require 're_sorcery/maybe/just'
require 're_sorcery/maybe/nothing'
require 're_sorcery/linked'
require 're_sorcery/configuration'

module ReSorcery
  include Fielded
  include Linked
  include Helpers
  extend Configuration

  def self.included(base)
    base.extend Fielded::ClassMethods
    base.extend Linked::ClassMethods
    @configured = "included at #{caller_locations.first}"
  end

  def resource
    Result::Ok.new({})
      .assign(:payload) { fields }
      .assign(:links) { links }
  end

  def as_json(*)
    resource.cata(
      ok: ->(r) { r },
      err: ->(e) { raise Error::InvalidResourceError, e },
    )
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
re_sorcery-0.3.0 lib/re_sorcery.rb
re_sorcery-0.2.0 lib/re_sorcery.rb
re_sorcery-0.1.0 lib/re_sorcery.rb