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
 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)
      }
    }
  }
}