Skip to content
/ scope Public

Scope is a small module that provides two macros to facilitate function overload and local import/aliases execution.

License

Notifications You must be signed in to change notification settings

xvw/scope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scope

Scope is a small module that provides two macros to facilitate function overload and local import/aliases execution.

Overload functions

import Scope overload [+: 2, -: 2], from: Kernel, with: Test 1 + 3 - 2 # gives [2, [1, 3]]

Local importation

You can just import one or more module :

import Scope x = local System do user_home <> " !" end # Or multiple module y = local Elixir.{System, Path} do absname(user_home()) end # Or specifics function from a module  z = local [user_home: 0, user_home!: 0] in System do user_home <> " !" end

You can also directly use an expression:

import Scope a = local (overload [+: 2, -: 2], from: Kernel, with: Test) do 1 + 2 - 3 end b = 1 + 2 - 3 # a == [3, [1, 2]] # b == 0 c = local (import Test) do a = 1 + 2 b = 1 - 2 a - b end

Installation

If available in Hex, the package can be installed by adding scope to your list of dependencies in mix.exs:

def deps do [{:scope, "~> 1.0.0"}] end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/local.

About

Scope is a small module that provides two macros to facilitate function overload and local import/aliases execution.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages