framework for writing unit test frameworks
meta-test-comp component for wdy
A simple in-memory filesystem. Holds data in a javascript object.
Read a protobuf schema from the disk, parse it and resolve all imports
Promisifies all the selected functions in an object
CSS vendor prefix detection and property feature testing.
Pretty options for minimist
Fast and safe decodeURIComponent
generator async control flow goodness
Generates a hash for an installed npm package, useful for salting caches
Flatten nested arrays
Test whether an object looks like a promises-a+ promise
modernize node.js to current ECMAScript standards
Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.
delay the evaluation of a paramless async function and cache the result
Regular expression for matching astral symbols
Featherweight assert module
High performance middleware framework
Produce URLs to test HTTP servers with ephemeral ports
Fast JavaScript array sorting by implementing Python's Timsort algorithm
Determine if an object is a Stream
Polyfill for Node.js module.createRequire (<= v12.2.0)
detect available port
Resolve the path of a module like `require.resolve()` but from a given path
A meta package to use all test-unit extensions.
🍲 Kettle::Test is a meta tool from kettle-rb to streamline testing. Acts as a shim dependency, pulling in many other dependencies, to give you OOTB productivity with a RubyGem, or Ruby app project. Configures RSpec w/ syntactic sugar to make writing tests, and testing more scenarios, easier.Configures each dependency library for proper use in the test suite, so they arrive ready to go. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
🍲 Kettle::Dev is a meta tool from kettle-rb to streamline development and testing. Acts as a shim dependency, pulling in many other dependencies, to give you OOTB productivity with a RubyGem, or Ruby app project. Configures a complete set of Rake tasks, for all the libraries is brings in, so they arrive ready to go. Fund overlooked open source projects - bottom of stack, dev/test dependencies: floss-funding.dev
Unit testing and test-driven development are crucial parts of the software development life cycle. This tool is intended to make development and testing in Ruby easier on everyone. RubyUnit is also designed to with a focus on data-driven testing and meta-programming.
Full test manager to run assertions driven by meta-data/modeled approach.
Fluidity is a test assertions framework built on top of the Assay assertions meta-framework. It provides an elegant fluid notation for specifying test assertions.
rcodetools is a collection of Ruby code manipulation tools. It includes xmpfilter and editor-independent Ruby development helper tools, as well as emacs and vim interfaces. Currently, rcodetools comprises: * xmpfilter: Automagic Test::Unit assertions/RSpec expectations and code annotations * rct-complete: Accurate method/class/constant etc. completions * rct-doc: Document browsing and code navigator * rct-meth-args: Precise method info (meta-prog. aware) and TAGS generation
BetterSeo provides a clean, fluent DSL for managing meta tags, Open Graph, Twitter Cards, XML sitemaps, and more. Features include automatic HTML generation, dynamic sitemap generation, validation, Rails integration, and 99.7% test coverage.
ontoMDE-uml2 contains UML2 meta-model and helper files to manipulate a UML2 model. ontoMDE-uml2 uses ontoMDE-core which provides core fonctionalities for loading a model in RDF/RDFS format. ontoMDE-UML2 is used by ontoMDE-java which contains rules for generating java Code. ontoMDE contains primitives for converting a UML2 model into a Protégé 2000 RDF/RDFS model. UML2 classes are converted into RDFS classes to allow data instances to be created. This feature is used heavily for providing editors for creating tests data for programs. == FEATURES/PROBLEMS: * UML2 meta-model definition in RDFS format * Ruby helper methods for handling a UML2 model. * UML Stereotype handling helpers. * UML predefined enumerations handling helper. * UML model manipulations helpers (add interface implementations, transform multiple inheritance into single inheritance, ...) UML2 to Protege 2000 features: * single and incremental use. * transparent update of name changes from source to target mode. * class * abstract class * interface * enumerated types * generalization links * implementation links * property, association, composition and aggregation * single and multivalued properties * mandatory fields (cardinaly=0 or >0) * UML documentation notes export to Protege 2000 for easy reference.
## A mirror API for Ruby In various [research][p1] [projects][p2] the advantages of having a [mirror API][p3] to separate reflection from a language implementation have been discussed, and "industry grade" implementations exist for [Java][p4] and [C#][p5]. This project aims at providing a number of specs and classes that document a mirror API for Ruby. The mirror implementation that is part of this project will use only those language facilities that are available across Ruby implementations. The specs, however, will also test behavior that cannot be provided in such a manner. The idea here is that in time, all implementations provide their own implementation of the mirror API, and all implementations collaborate on this one spec. Why do this, you ask? Because Ruby needs tools, and those tools need to be written in Ruby. If they are not, then people will be excluded from tinkering with their tools, thus impeding innovation. You only have to look at Emacs or Smalltalk to see what's possible when programmers can extend their tools, all tools, in a language they feel comfortable in. If we have a standard mirror API, all tools that are written **for** Ruby, **in** Ruby, can be shared across implementations, while at the same time allowing language implementers to use the facilities of their platform to provide optimal reflective capabilities without tying them to internals. [p1]: http://www.cs.virginia.edu/~lorenz/papers/icse03/icse2003.pdf "Pluggable Reflection: Decoupling Meta-Interface and Implementation" [p2]: http://bracha.org/newspeak-spec.pdf "Newspeak Programming Language Draft Specification, Version 0.06, pages 40 onward" [p3]: http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4 "Linguistic Reflection Via Mirrors" [p4]: http://bracha.org/mirrors.pdf "Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages" [p5]: http://oreilly.com/catalog/progcsharp/chapter/ch18.html "See esp. 18-3, highlighting how C# reflection works on assembly rather than VM objects"
# Crowdfund (Alec) Ferramenta de linha de comando e biblioteca Ruby para simular um programa de **arrecadação de fundos** com rodadas, promessas (pledges) e diferentes tipos de projetos (básico, com *matching*, e *grant*). ## Instalação ```bash gem install crowdfund_alec ``` Ou rode a partir do código-fonte: ```bash ruby bin/crowdfund ``` ## Como funciona - Você carrega projetos via CSV (nome, fundos_iniciais, meta). - Em cada rodada, um dado é rolado para **adicionar** (+25) ou **remover** (–15) fundos do projeto. - Em paralelo, o projeto recebe **pledges** aleatórios: bronze ($50), silver ($75), gold ($100). - Projetos podem ter comportamento especial: - **MatchingProject**: quando chega a 50% da meta, cada `add_fund` passa a dobrar (+50). - **GrantProject**: nunca perde fundos em `remove_fund`. - Ao sair, o relatório salva os **subfinanciados** em `needmoremoney.txt` e imprime estatísticas. ## Uso (CLI) ```bash # (1) CSV padrão (bin/projects.csv) ruby bin/crowdfund # (2) Informando um CSV customizado ruby bin/crowdfund caminho/para/projetos.csv ``` Durante a execução: - Digite um número para a quantidade de rodadas. - Digite `q` ou `e` para sair e ver o relatório final. ### Formato do CSV ``` NomeDoProjeto,fundos_iniciais,meta BuyaBoat,5,10000 TraveltoVictoriaIsland,5,3000 GetaPuppy,5,300 ``` ## Saída esperada - Resumo por rodada dos fundos e pledges recebidos. - Arquivo `needmoremoney.txt` contendo: - Título do relatório. - Projetos totalmente financiados. - Projetos subfinanciados ordenados por **quanto falta**. - Snapshot CSV de todos os projetos. ## API (uso como biblioteca) Requerendo as classes principais: ```ruby require 'crowdfund/project' require 'crowdfund/fund_request' ``` Criando projetos e executando rodadas: ```ruby project = Project.new("My App", 500, 2000) funding = FundRequest.new("Startup do Alec") funding.add_project(project) funding.request_funding(5) funding.print_results ``` ### Classes principais - `Project` - Atributos: `name`, `fund_amount`, `target_fund_amount` - Métodos: `add_fund`, `remove_fund`, `funds_needed`, `funded?`, `received_pledge`, `pledges`, `total_funds`, `each_received_pledge`, `to_csv`, `status` - `FundRequest` - Gerencia lista de projetos, executa rodadas, imprime e salva relatórios. - `MatchingProject < Project` - Dobra `add_fund` quando `halfway_funded?` (>= 50% da meta). - `GrantProject < Project` - Sobrescreve `remove_fund` para nunca diminuir fundos. - `Pledgesmod` - Constante `PLEDGES` e `.random` para escolher bronze/silver/gold. - `FundingRound` - Regras de uma rodada: rola `Die`, aplica `add/remove`, atribui pledge. - `Fundable` (mixin) - Implementa `add_fund`, `remove_fund`, `funds_needed`, `funded?`. - `Die` - D6 simples com `roll`. ## Testes Rodar todos os testes: ```bash rspec ``` Principais cenários cobertos: - Regras de `add_fund`/`remove_fund`. - Comportamento de `MatchingProject` e `GrantProject`. - Integração de `FundingRound` e `Pledgesmod`. - Geração do relatório em `FundRequest`. ## Licença MIT — consulte o arquivo `LICENSE`.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.