Sha256: 41254b777b88e03c0896852bba0918c9e9c3bc84ea1bbf6a8875efc66bdd1dcc

Contents?: true

Size: 552 Bytes

Versions: 3

Compression:

Stored size: 552 Bytes

Contents

require "iolite/adaptor/all"
require "iolite/functinal/invoke"

module Iolite module Refinements
	module String
		refine ::String do
			include Iolite::Adaptor::ToProc
			include Iolite::Adaptor::Callable
			def call *args
				result = self.clone
				args.each_with_index { |it, i|
					result.gsub! Iolite::Placeholders.const_get("ARG#{i+1}").to_s, it.to_s
				}
				result
			end

			def to_call_by_eval binding = nil
				Iolite.lambda { |*args|
					gsub(/#{'#{(.*?)}'}/) {
						eval($1, binding).call(*args)
					}
				}
			end
		end
	end
end end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
iolite-0.0.3 lib/iolite/refinements/string.rb
iolite-0.0.2 lib/iolite/refinements/string.rb
iolite-0.0.1 lib/iolite/refinements/string.rb