Repeatedly apply a function.
Iterate any iterable JS value. Works robustly in all environments, all versions.
A polymorphic iterate operator for arrays and other iterables
Iterate any JS iterator. Works robustly in all environments, all versions.
`Array#forEach()` but it’s possible to define where to move to next
Iterate through the values of a stream
A convenient way to iterate objects.
A tiny, zero-dependency yet spec-compliant asynchronous iterator polyfill/ponyfill for ReadableStreams.
Extended iterable class, providing lazy array-like methods with automatic async and return/throw forwarding
Iterate values in a list in random order
foreach component + npm package
Iterate over a collection, invoking a function for each element.
Iterate all the data in a stream
Callbag factory that concatenates data from multiple callbag sources
Like `await Promise.all(mytasks.map(async (item) => ....))`, but with super-powers
A dictionary of file extensions and associated module loaders.
Callbag operator that applies a transformation on data passing through it
Iterate directory up.
LaunchDarkly SDK for JavaScript - common code
TypeScript definitions and functions for using Docling output.
Provides tools for iterating over and manipulating GeoJSON objects.
Array methods for ES6 Iterators
Iterate over promises serially
Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js
Enumeradical is a collection of useful functions for iterating over collections in common ways.
Config fluentd in ruby. And featuring all programming features (variables, iterators, functions, regexp, etc) in ruby.
Provide a similar way to config HCL (HashiCorp Configuration Language) in ruby. And featuring all programming features (variables, iterators, functions, regexp, etc) in ruby.
Terraform's HCL lacks quite many programming features like iterators, true variables, advanced string manipulation, functions etc. This Ruby tool provides an easy-to-use DSL to define Terraform compatible .json files which can then be used with Terraform side-by-side with HCL files.
Computes approximation within a given error_limit to the values of a root of an arbitrary function f(x) or to the value of inverse function g(y) = x. Uses Newton-Raphson or Secant methods. Requires one (Newton-Raphson) or two (Secant) estimates of the target value. Raises NoConvergenceError when it does not converge within the set error_limit, on set number of iterations.
Rize is a collection of useful methods that can make it easier to work with functions, arrays and hashes in Ruby. It allows you to compose and memoize functions, elegantly iterate over multiple arrays at once, easily map over hash keys and values, and much more. Nothing is monkeypatched, so you don't have to worry about the core classes behaving differently than you expect.
Flexible and human-friendly Cartesian product enumerator for Ruby. Supports functions and conditions on cartesian, dimensionality-agnostic/dimensionality-aware iterators, named dimensions, tabular output, lazy/eager evaluation, progress bar, import from JSON/YAML, and export to Markdown/CSV. Code example: https://github.com/Yuri-Rassokhin/flex-cartesian/blob/main/README.md#example
A java like Enum class for ruby. A while ago I was exploring Java, and came across the Enum class, which had some interesting functionality, and I decided that I would like something like it. Conceptually if you just need a unique identifier you may be perfectly happy using a :symbol, and that would likely be a simpler way of having a controll flag. However, if you want to have a set of unique identifiers that you can address, iterate over, assign properties to, etc, then this may be something you would be interested in.
This gem implements: 1.) a logistic map function (#logistic_map), which is a discrete, non-linear, dynamic equation which can show - with proper parameters - chaotic behaviour with super-sensitivity to the initial parameters. Very small changes to initial parameters cause huge changes in the result (can be used as a PRNG as iterated over and over); 2.) A tent-map version of the logistic map (#logistic_points) which returns an array of Nth iterated values of several logistic maps with their initial X0 parameter ranging from 0 to 1 by user defined steps, showing curve-like properties when plotted.
GRYDRA v2.0 is a complete, modular Ruby library for building, training, and deploying neural networks. NEW in v2.0: - Complete modular architecture with 29 organized files - Keyword arguments API for better readability - Full implementations (no more "simplified" versions) - 8 loss functions (MSE, MAE, Huber, Cross-Entropy, Hinge, Log-Cosh, Quantile) - 5 optimizers (Adam, SGD, RMSprop, AdaGrad, AdamW) - 6 training callbacks (EarlyStopping, LearningRateScheduler, ReduceLROnPlateau, ModelCheckpoint, CSVLogger, ProgressBar) - Complete LSTM implementation with backpropagation - Complete 2D Convolutional layer with padding and stride - Real PCA with eigenvalue decomposition using Power Iteration - Multiple activation functions (Tanh, ReLU, Leaky ReLU, Sigmoid, Swish, GELU, Softmax) - Regularization (Dropout, L1, L2) - Weight initialization (Xavier, He) - Data normalization (Z-Score, Min-Max) - Comprehensive metrics (MSE, MAE, Accuracy, Precision, Recall, F1, Confusion Matrix, AUC-ROC) - Advanced training (mini-batch, early stopping, learning rate decay, validation split) - Cross-validation and hyperparameter search - Text processing (vocabulary, binary vectorization, TF-IDF) - Model persistence (save/load with Marshal) - Network visualization and gradient analysis - Simplified EasyNetwork interface - 100% backward compatibility with v1.x Perfect for machine learning projects, research, and education in Ruby.
== ICU4R - ICU Unicode bindings for Ruby ICU4R is an attempt to provide better Unicode support for Ruby, where it lacks for a long time. Current code is mostly rewritten string.c from Ruby 1.8.3. ICU4R is Ruby C-extension binding for ICU library[1] and provides following classes and functionality: * UString: - String-like class with internal UTF16 storage; - UCA rules for UString comparisons (<=>, casecmp); - encoding(codepage) conversion; \ - Unicode normalization; - transliteration, also rule-based; Bunch of locale-sensitive functions: - upcase/downcase; - string collation; \ - string search; - iterators over text line/word/char/sentence breaks; \ - message formatting (number/currency/string/time); - date and number parsing. * URegexp - unicode regular expressions. * UResourceBundle - access to resource bundles, including ICU locale data. * UCalendar - date manipulation and timezone info. * UConverter - codepage conversions API * UCollator - locale-sensitive string comparison == Install and usage > ruby extconf.rb > make && make check > make install Now, in your scripts just require 'icu4r'. To create RDoc, run > sh tools/doc.sh == Requirements To build and use ICU4R you will need GCC and ICU v3.4 libraries[2]. == Differences from Ruby String and Regexp classes === UString vs String 1. UString substring/index methods use UTF16 codeunit indexes, not code points. 2. UString supports most methods from String class. Missing methods are: capitalize, capitalize!, swapcase, swapcase! %, center, ljust, rjust chomp, chomp!, chop, chop! \ count, delete, delete!, squeeze, squeeze!, tr, tr!, tr_s, tr_s! crypt, intern, sum, unpack dump, each_byte, each_line hex, oct, to_i, to_sym reverse, reverse! succ, succ!, next, next!, upto 3. Instead of String#% method, UString#format is provided. See FORMATTING for short reference. 4. UStrings can be created via String.to_u(encoding='utf8') or global u(str,[encoding='utf8']) calls. Note that +encoding+ parameter must be value of String class. 5. There's difference between character grapheme, codepoint and codeunit. See UNICODE reports for gory details, but in short: locale dependent notion of character can be presented using more than one codepoint - base letter and combining (accents) (also possible more than one!), and each codepoint can require more than one codeunit to store (for UTF8 codeunit size is 8bit, though \ some codepoints require up to 4bytes). So, UString has normalization and locale dependent break iterators. 6. Currently UString doesn't include Enumerable module. 7. UString index/[] methods which accept URegexp, throw exception if Regexp passed. 8. UString#<=>, UString#casecmp use UCA rules. === URegexp UString uses ICU regexp library. Pattern syntax is described in [./docs/UNICODE_REGEXPS] and ICU docs. There are some differences between processing in Ruby Regexp and URegexp: 1. When UString#sub, UString#gsub are called with block, special vars ($~, $&, $1, ...) aren't set, as their values are processed through deep ruby core code. Instead, block receives UMatch object, which is essentially immutable array of matching groups: "test".u.gsub(ure("(e)(.)")) do |match| \ puts match[0] # => 'es' <--> $& puts match[1] # => 'e' \ <--> $1 puts match[2] # => 's' <--> $2 end 2. In URegexp search pattern backreferences are in form \n (\1, \2, ...), in replacement string - in form $1, $2, ... NOTE: URegexp considers char to be a digit NOT ONLY ASCII (0x0030-0x0039), but any Unicode char, which has property Decimal digit number (Nd), e.g.: a = [?$, 0x1D7D9].pack("U*").u * 2 puts a.inspect_names <U000024>DOLLAR SIGN <U01D7D9>MATHEMATICAL DOUBLE-STRUCK DIGIT ONE <U000024>DOLLAR SIGN <U01D7D9>MATHEMATICAL DOUBLE-STRUCK DIGIT ONE puts "abracadabra".u.gsub(/(b)/.U, a) abbracadabbra \ 3. One can create URegexp using global Kernel#ure function, Regexp#U, Regexp#to_u, or from UString using URegexp.new, e.g: /pattern/.U =~ "string".u 4. There are differences about Regexp and URegexp multiline matching options: t = "text\ntest" # ^,$ handling : URegexp multiline <-> Ruby default t.u =~ ure('^\w+$', URegexp::MULTILINE) => #<UMatch:0xf6f7de04 @ranges=[0..3], @cg=[\u0074\u0065\u0078\u0074]> t =~ /^\w+$/ => 0 # . matches \n : URegexp DOTALL <-> /m t.u =~ ure('.+test', URegexp::DOTALL) \ => #<UMatch:0xf6fa4d88 ... t.u =~ /.+test/m 5. UMatch.range(idx) returns range for capturing group idx. This range is in codeunits. === References 1. ICU Official Homepage http://ibm.com/software/globalization/icu/ 2. ICU downloads \ http://ibm.com/software/globalization/icu/downloads.jsp 3. ICU Home Page http://icu.sf.net 4. Unicode Home Page http://www.unicode.org ==== BUGS, DOCS, TO DO The code is slow and inefficient yet, is still highly experimental, so can have many security and memory leaks, bugs, inconsistent documentation, incomplete test suite. Use it at your own risk. Bug reports and feature requests are welcome :) === Copying This extension module is copyrighted free software by Nikolai Lugovoi. You can redistribute it and/or modify it under the terms of MIT License. Nikolai Lugovoi <meadow.nnick@gmail.com>
== Description ["Kiwi is a versatile entity component system focussing on fast iteration and a nice api.\n", "\n", "To get started, read the [usage guide](#usage) below.\n", "\n", "[](https://github.com/Jomy10/kiwi-ecs-ruby/actions/workflows/tests.yml)\n", "\n", "## Installation\n", "\n", "The library is available from [ruby gems](https://rubygems.org/gems/kiwi-ecs):\n", "\n", "```sh\n", "gem install kiwi-ecs\n", "```\n", "\n", "To use it in your ruby source files:\n", "\n", "```ruby\n", "require 'kiwi-ecs'\n", "```\n", "\n", "## Usage\n", "\n", "### The world\n", "\n", "The world is the main object that controls the ecs.\n", "\n", "```ruby\n", "world = Kiwi::World.new\n", "```\n", "\n", "### Components\n", "\n", "Creating a component is as simple as declaring a struct:\n", "\n", "```ruby\n", "Position = Struct.new :x, :y\n", "```\n", "\n", "Classes can also be used instead of structs\n", "\n", "```ruby\n", "class Velocity\n", " attr_accessor :x\n", " attr_accessor :y\n", "end\n", "```\n", "\n", "### Entities\n", "\n", "An entity is spawned with a set of components:\n", "\n", "```ruby\n", "entityId = world.spawn(Position.new(10, 10))\n", "\n", "world.spawn(Position.new(3, 5), Velocity.new(1.5, 0.0))\n", "```\n", "\n", "The `world.spawn(*components)` function will return the id of the spawned entity.\n", "\n", "Killing an entity can be done using `world.kill(entityId)`:\n", "\n", "```ruby\n", "world.kill(entityId)\n", "```\n", "\n", "### Systems\n", "\n", "#### Queries\n", "\n", "Queries can be constructed as follows:\n", "\n", "```ruby\n", "# Query all position componentss\n", "world.query(Position) do |pos|\n", " puts pos\n", "end\n", "\n", "# Query all entities having a position and a velocity component, and their entity ids\n", "world.query_with_ids(Position, Velocity) do |id, pos, vel|\n", " # ...\n", "end\n", "```\n", "\n", "### Flags\n", "\n", "Entities can be tagged using flags\n", "\n", "#### Defining flags\n", "\n", "A flag is an integer\n", "\n", "```ruby\n", "module Flags\n", " Player = 0\n", " Enemy = 1\n", "end\n", "```\n", "\n", "#### Setting flags\n", "\n", "```ruby\n", "id = world.spawn\n", "\n", "world.set_flag(id, Flags::Player)\n", "```\n", "\n", "#### Removing a flag\n", "\n", "```ruby\n", "world.remove_flag(id, Flags::Player)\n", "```\n", "\n", "#### Checking wether an entity has a flag\n", "\n", "```ruby\n", "world.has_flag(id, Flags::Player)\n", "```\n", "\n", "#### Filtering queries with flags\n", "\n", "```ruby\n", "world.query_with_ids(Pos)\n", " .filter do |id, pos|\n", " world.has_flag(id, Flags::Player)\n", " end\n", " .each do |id, pos|\n", " # Do something with the filtered query\n", " end\n", "```\n", "\n", "The `hasFlags` function is also available for when you want to check multiple flags.\n", "\n", "## Road map\n", "\n", "- [ ] System groups\n", "\n", "## Contributing\n", "\n", "Contributors are welcome to open an issue requesting new features or fixes or opening a pull request for them.\n", "\n", "## License\n", "\n", "The library is licensed under LGPLv3.\n"]
No description provided.
No description provided.
No description provided.
No description provided.