Sha256: f491427329aed87336a3a08fe815aaca95dcb146db80a17b1949554e18522c0a

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

require File.join %w(extend_it caller)
require File.join %w(extend_it symbolize)

using ExtendIt::Caller
using ExtendIt::Symbolize

module ExtendIt
  module Asserts
    private

    if RUBY_VERSION >= '2.1.0'
      def assert_symbol(*names, binding: nil)
        return unless binding ||= caller_binding
        names.each do |name|
          name = name.ensure_symbol || next
          var = binding.local_variable_get(name)
          var = var.ensure_symbol || fail(
            ArgumentError,
            "Argument `#{name}` should be a Symbol or String",
            caller[1..-1]
          )
          binding.local_variable_set(name, var)
        end
      end
    else
      def assert_symbol(*names, binding: nil)
        return unless binding ||= caller_binding
        names.each do |name|
          name = name.ensure_symbol || next
          binding.eval(
            "#{name} = #{name}.ensure_symbol || fail(ArgumentError," \
            " 'Argument `#{name}` should be a Symbol or String')"
          )
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
admin_it-1.0.7 lib/extend_it/asserts.rb
admin_it-1.0.6 lib/extend_it/asserts.rb
admin_it-1.0.5 lib/extend_it/asserts.rb
admin_it-1.0.4 lib/extend_it/asserts.rb
admin_it-1.0.3 lib/extend_it/asserts.rb
admin_it-1.0.2 lib/extend_it/asserts.rb
admin_it-1.0.1 lib/extend_it/asserts.rb