intertwingly

It’s just data

Ruby2JS Attribute=>Property support


Ruby2JS now maps Ruby attributes to JavaScript properties:

Input Ruby:

class Person
  attr_accessor :first_name, :last_name

  def initialize(first_name, last_name)
    @first_name = first_name
    @last_name = last_name
  end

  def full_name
    "#{@first_name} #{@last_name}"
  end
end

Output JavaScript:

function Person(first_name, last_name) {
  this._first_name = first_name;
  this._last_name = last_name
};

Person.prototype = {
  get first_name() {
    return this._first_name
  },

  set first_name(first_name) {
    this._first_name = first_name
  },

  get last_name() {
    return this._last_name
  },

  set last_name(last_name) {
    this._last_name = last_name
  },

  get full_name() {
    return this._first_name + " " + this._last_name
  }
}