Project

myco

0.01
No commit activity in last 3 years
No release in over 3 years
An experimental language on the Rubinius VM
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.6
~> 1.3
~> 0.9
~> 10.3
~> 3.0

Runtime

 Project Readme

Build Status

Myco < Ruby, QML, Ioke {
  primary author: "Joe Eli McIlvain"
  
  development status: [:alpha, :experimental]
  
  dependency "Rubinius VM"
  
  development dependency 'bundler':  1.6
  development dependency 'rake':    10.3
  development dependency 'rspec':    3.0
  development dependency 'fivemat':  1.3
  
  [features]
  
  "innovative declarative syntax layer around a familiar Ruby-like layer"
  "ease of expression of intent" : "consistent but powerful rules"
  todo "runtime parsing rule intercession"
  todo "nested blocks parsed by user parsers"
  
  "patterns for a responsibly localized import system": ImportSystemMethods {
    import 'some/library'
    import as(:SomeLibrary) 'some/library'
    private import 'some/library'
    export as(:MyGlobalLibrary) 'my/library'
    arbitrary user_defined import_mechanism 'special/library'
  }
  
  "fluid integration with the host Ruby runtime": {
    ruby_require('some_ruby_gem')
    obj = SomeRubyGem::Object.new(1, 2, *rest, foo:8, bar:9)
    
    RubyEval """
      Myco::SomeObject.new(foo:8, bar:9)
    """
  }
  
  rich support_for(:decorators) in: user_space
  
  [decorators]
  
  support_for: Decorator {
    apply: |meme|
      arguments.each |feature| { meme.supported_features.push(feature) }
  }
  
  rich: Decorator {
    [transforms]
    richness: true
    memoize: true
  }
  
  [contributing]
  
  Github < RepositoryHost {
    URL: "https://github.com/jemc/myco"
    IssueTracker: URL + "/issues"
  }
  
  contributing_process: |user, problem| {
    issue = user.file_bug_report(problem, on: Github::IssueTracker)
    
    if(user.can_implement?) {
      pr = PullRequest {
        name: "Fix for issue #"issue.number" - "issue.description"."
        branch: snake_case(issue.name)
        user: user
        
        include fix: for(problem)
        include tests: for(fix)
        
        user.file_pull_request(pr, on: Github::IssueTracker)
      }
    }
  }
}