Sha256: a549789aa6a720330a2cba7988d5132900ce2803ffa50f9a69f0c92e99ba104d

Contents?: true

Size: 989 Bytes

Versions: 24

Compression:

Stored size: 989 Bytes

Contents

module JSONAPIonify::Api
  module Relationship::Blocks

    def self.extended(klass)
      klass.class_eval do
        prepend_class
        append_class
      end
    end

    def prepend_class(&block)
      block ||= proc {}
      if method_defined? :class_prepends
        previous_prepends = instance_method(:class_prepends)
        define_method :class_prepends do
          (previous_prepends.bind(self).call + [block]).freeze
        end
      else
        prepends = [block].freeze
        define_method :class_prepends do
          prepends
        end
      end
    end

    def append_class(&block)
      block ||= proc {}
      if method_defined? :class_appends
        previous_appends = instance_method(:class_appends)
        define_method :class_appends do
          (previous_appends.bind(self).call + [block]).freeze
        end
      else
        appends = [block].freeze
        define_method :class_appends do
          appends
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
jsonapionify-0.12.10 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.9 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.8 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.7 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.5 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.4 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.3 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.2 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.1 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.12.0 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.11 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.10 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.9 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.8 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.7 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.6 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.5 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.11.0 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.10.2 lib/jsonapionify/api/relationship/blocks.rb
jsonapionify-0.10.1 lib/jsonapionify/api/relationship/blocks.rb