RubyGateway

Embed Ruby in Swift: load Gems, run scripts, call APIs seamlessly in both directions.

OTHER License

Stars
158
Committers
2
RubyGateway - 6.0.0-pre1 Latest Release

Published by johnfairh 6 months ago

First release leading up to Swift 6.

  • Revamp for modern Swift including concurrency checking, many technically-changed APIs
  • Update CRuby, introduce xcconfig
RubyGateway - 5.5.0

Published by johnfairh 9 months ago

Enhancements

  • Support Ruby 3.3
RubyGateway - 5.4.0

Published by johnfairh over 1 year ago

Enhancements

  • Support Ruby 3.2
RubyGateway - 5.3.0

Published by johnfairh about 2 years ago

Enhancements

  • Support Ruby 3.1
RubyGateway - 5.2.0

Published by johnfairh about 3 years ago

Enhancements

RubyGateway - 5.1.0

Published by johnfairh over 3 years ago

Update to require Swift 5.4 to build, Ruby 2.6 to run, and support Ruby 3 too.

Breaking

  • Removed RbGateway.taintChecks -- $SAFE removed in Ruby 3
  • Internal modules CRuby and RubyGatewayHelpers are now imported as
    @_implementationOnly

Enhancements

  • Support Ruby 3 - check README notes on -fdeclspec, see CI for an example
  • Support building cleanly with Xcode 13
  • Add kwArgs parameter to RbMethod.yieldBlock(...)
RubyGateway - 4.0.0

Published by johnfairh over 3 years ago

Breaking

  • Require minimum Swift 5.4 / Xcode 12.5
  • Require minimum Ruby 2.6
RubyGateway - 3.2.1

Published by johnfairh over 4 years ago

Bug Fixes

  • Fix warnings and tests for Swift 5.2/Xcode 11.4.
RubyGateway - 3.2.0

Published by johnfairh almost 5 years ago

Breaking

  • None

Enhancements

  • Add RbObjectAccess.setConstant(_:newValue:), somehow overlooked!
  • Add RbGateway.setArguments(_:) to help with ARGV-setting.

Bug Fixes

  • None
RubyGateway - 3.1.0

Published by johnfairh almost 5 years ago

Enhancements

  • Add Hashable conformance to RbSymbol.
  • Tests pass on Ruby 2.6 / Xcode 11.2.
RubyGateway - 3.0.0

Published by johnfairh over 5 years ago

Breaking
  • Require minimum Swift 5 / Xcode 10.2 / Ruby 2.3.
  • Standardize all APIs to not require a leading name arg label.
  • Retire @dynamicMemberLookup support now the level of support from Swift is clearer. May revisit this in future.
Enhancements
  • Implement class and singleton-class methods in Swift.
  • Define classes and modules from Swift.
  • Add module mix-in functions to RbObject.
  • Bind Ruby objects and methods directly to Swift objects and methods.
  • Add throwing conversion as alternative to optional initializer.
  • Add RbMethod.callSuper() to call superclass method.
RubyGateway - 2.0.0

Published by johnfairh about 6 years ago

Breaking
  • Require Swift 4.2.
Enhancements
  • Dynamic member lookup for property access or 0-arg methods.
  • Global variables can use native Swift types.
RubyGateway - 1.1.0

Published by johnfairh over 6 years ago

Enhancements

  • Add RbComplex wrapper for Ruby Complex.
  • Add RbRational wrapper for Ruby Rational.
  • Add RbGateway.defineGlobalVar - dynamically implement Ruby global variables in Swift.
RubyGateway - 1.0.0

Published by johnfairh over 6 years ago

Enhancements
  • Add RbGateway.taintChecks.
  • Full SemVer rules from now on.
RubyGateway - 0.5.0

Published by johnfairh over 6 years ago

Breaking
  • Change kwArgs to use DictionaryLiteral per dynamic callable.
Enhancements
  • Add conditional Set RbObjectConvertible conformance.
  • Add conditional ArraySlice RbObjectConvertible conformance.
RubyGateway - 0.4.0

Published by johnfairh over 6 years ago

Breaking
  • Now requires Swift 4.1 (conditional conformances!).
  • Replace RbObject's deprecated CustomPlaygroundQuickLookable conformance with
    CustomPlaygroundDisplayConvertible.
Enhancements
  • Add conditional Array RbObjectConvertible conformance.
  • Add conditional Dictionary RbObjectConvertible conformance.
  • Add RbThread utilities and write up rules for multithreading.
  • Add conditional Range family RbObjectConvertible conformance.
  • Add RbObjectCollection to use Swift collection protocols with Ruby.
  • Allow Swift nil literal in argument positions to mean Ruby nil.
RubyGateway - 0.3.0

Published by johnfairh over 6 years ago

CocoaPods support.

RubyGateway - 0.2.0

Published by johnfairh over 6 years ago

Allow Swift to implement Ruby blocks.

RubyGateway - 0.1.0

Published by johnfairh over 6 years ago

Basic data types and object access.

Swift PM and Carthage.

Package Rankings
Top 17.4% on Cocoapods.org
Top 23.53% on Swiftpackageindex.com
Badges
Extracted from project README
CI codecov Carthage compatible