From 04cf1de624ff35eb037e5a8fb52b99b081340ce7 Mon Sep 17 00:00:00 2001 From: catmando Date: Mon, 29 Mar 2021 11:07:59 -0400 Subject: [PATCH] ready for next gem release --- docs/client-dsl/interlude-tic-tac-toe.md | 30 ++-- docs/client-dsl/notes.md | 1 + docs/client-dsl/state.md | 3 + docs/hyper-state/README.md | 98 +++++++++++++ docs/rails-installation/prerequisites.md | 2 +- .../spec/hyper-state/tic_tac_toe_spec.rb | 137 +++++++++++++++--- readme.md | 60 ++++---- release-notes/1.0.alpha1.6.md | 9 +- .../lib/hyperstack/component/version.rb | 2 +- .../lib/hyperloop/console/version.rb | 2 +- ruby/hyper-i18n/lib/hyper-i18n/version.rb | 2 +- .../hyper-i18n/lib/hyperstack/i18n/version.rb | 2 +- ruby/hyper-model/lib/hyper_model/version.rb | 2 +- .../lib/hyper-operation/version.rb | 2 +- .../lib/hyperstack/router/version.rb | 2 +- ruby/hyper-spec/lib/hyper-spec/version.rb | 2 +- .../lib/hyperstack/state/version.rb | 2 +- .../lib/hyperstack/legacy/store/version.rb | 2 +- ruby/hyper-trace/lib/hyper_trace/version.rb | 2 +- .../lib/hyperstack/config/version.rb | 2 +- .../lib/hyperstack/version.rb | 2 +- 21 files changed, 277 insertions(+), 89 deletions(-) diff --git a/docs/client-dsl/interlude-tic-tac-toe.md b/docs/client-dsl/interlude-tic-tac-toe.md index c350703d2..ec0058ee3 100644 --- a/docs/client-dsl/interlude-tic-tac-toe.md +++ b/docs/client-dsl/interlude-tic-tac-toe.md @@ -4,7 +4,7 @@ At this point if you have been reading sequentially through these chapters you k The board is represented by an array of 9 cells. Cell 0 is the top left square, and cell 8 is the bottom right. -Each cell will contain nil, an :X or an :O. +Each cell will contain nil, an `:X` or an `:O`. ### Displaying the Board @@ -13,7 +13,7 @@ The `DisplayBoard` component displays a board. `DisplayBoard` accepts a `board` A small helper function `draw_squares` draws an individual square which is displayed as a `BUTTON`. A click handler is attached which will fire the `clicked_at` event with the appropriate cell id. -Notice that `DisplayBoard` has no internal state of its own. That is handled by the `Game` component. +Notice that `DisplayBoard` has no internal state of its own. That is handled by the `DisplayGame` component. ```ruby class DisplayBoard < HyperComponent @@ -37,7 +37,7 @@ end ### The Game State -The `Game` component has two state variables: +The `DisplayGame` component has two state variables: + `@history` which is an array of boards, each board being the array of cells. + `@step` which is the current step in the history (we begin at zero) @@ -46,17 +46,17 @@ The `Game` component has two state variables: These are initialized in the `before_mount` callback. Because Ruby will adjust the array size as needed and return nil if an array value is not initialized, we can simply initialize the board to an empty array. -There are two reader methods that read the state: +There are three *reader* methods that read the state: -+ `player` returns the current player's token. The first player is always :X so even steps -are :X, and odd steps are :O. ++ `player` returns the current player's token. The first player is always `:X` so even steps +are `:X`, and odd steps are `:O`. + `current` returns the board at the current step. + `history` uses state_reader to encapsulate the history state. Encapsulated access to state in reader methods like this is not necessary but is good practice ```ruby -class Game < HyperComponent +class DisplayGame < HyperComponent before_mount do @history = [[]] @step = 0 @@ -79,7 +79,7 @@ end We also have a `current_winner?` method that will return the winning player or nil based on the value of the current board: ```ruby -class Game < HyperComponent +class DisplayGame < HyperComponent WINNING_COMBOS = [ [0, 1, 2], [3, 4, 5], @@ -93,9 +93,7 @@ class Game < HyperComponent def current_winner? WINNING_COMBOS.each do |a, b, c| - return current[a] if current[a] && - current[a] == current[b] && - current[a] == current[c] + return current[a] if current[a] && current[a] == current[b] && current[a] == current[c] end false end @@ -110,7 +108,9 @@ There are two mutator methods that change state: The `handle_click!` mutator first checks to make sure that no one has already won at the current step, and that no one has played in the cell that the user clicked on. If either of these conditions is true `handle_click!` -returns and nothing changes. +returns, no mutation is signaled and nothing changes. + +> If we had wanted to return AND signal a state mutation we would use the Ruby `next` keyword instead of `return`.s To update the board `handle_click!` duplicates the squares; adds the player's token to the cell; makes a new history with the new squares on the end, and finally updates the value of `@step`. @@ -120,7 +120,7 @@ code are aware that these will change state. ```ruby -class Game < HyperComponent +class DisplayGame < HyperComponent mutator :handle_click! do |id| board = history[@step] return if current_winner? || board[id] @@ -143,7 +143,7 @@ Now we have a couple of helper methods to build parts of the game display. + `status` provides the play state ```ruby -class Game < HyperComponent +class DisplayGame < HyperComponent def moves return unless history.length > 1 @@ -166,7 +166,7 @@ end And finally our render method which displays the Board and the game info: ```ruby -class Game < HyperComponent +class DisplayGame < HyperComponent render(DIV, class: :game) do DIV(class: :game_board) do DisplayBoard(board: current) diff --git a/docs/client-dsl/notes.md b/docs/client-dsl/notes.md index 27c994984..c7985146f 100644 --- a/docs/client-dsl/notes.md +++ b/docs/client-dsl/notes.md @@ -297,6 +297,7 @@ Hyperstack.cancel_import 'hyperstack/component/auto-import' ``` ### The Enter Event +The :enter event is short for catching :key_down and then checking for a key code of 13. ```ruby class YouSaid < HyperComponent state_accessor :value diff --git a/docs/client-dsl/state.md b/docs/client-dsl/state.md index dfee02da0..c81a5a0c2 100644 --- a/docs/client-dsl/state.md +++ b/docs/client-dsl/state.md @@ -94,6 +94,9 @@ is common enough that Hyperstack provides two ways to shorten this code. The fi In other words `mutator` defines a method that is wrapped in a call to `mutate`. It also has the advantage of clearly declaring that this method will be mutating the components state. +> Important note: If you do an early exit from the mutator using a `return` or `break` no mutation +will occur. If you want to do an early exit then use the `next` keyword. + ### The `state_accessor`, `state_reader` and `state_writer` Methods Often all a mutator method will do is assign a new value to a state. For this case Hyperstack provides diff --git a/docs/hyper-state/README.md b/docs/hyper-state/README.md index 919e92b5d..b6f68a534 100644 --- a/docs/hyper-state/README.md +++ b/docs/hyper-state/README.md @@ -2,3 +2,101 @@ The `Hyperstack::State::Observable` module allows you to build classes that share their state with Hyperstack Components, and have those components update when objects in those classes change state. ## This Page Under Construction + +The `Hyperstack::State::Observable` module allows you to build classes that share their state with Hyperstack Components, and have those components update when objects in those classes change state. + +### Revisiting the Tic Tac Toe Game + +The easiest way to understand how to use Hyperstate is by example. If you you did not see the Tic Tac Toe example, then please review it now, as we are going to use this to demonstrate how the `Hyperstack::State::Observable` can be used in any Ruby class, to make that class work as a **Store** for your Hyperstack components. + +Here is the revised Tic Tac Toe game using a *Store* to hold the game data. + +```ruby +class Game + include Hyperstack::State::Observable + + receives Hyperstack::Application::Boot do + @history = [[]] + @step = 0 + end + + class << self + observer :player do + @step.even? ? :X : :O + end + + observer :current do + @history[@step] + end + + state_reader :history + + WINNING_COMBOS = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]] + + def current_winner? + WINNING_COMBOS.each do |a, b, c| + return current[a] if current[a] && current[a] == current[b] && current[a] == current[c] + end + false + end + + mutator :handle_click! do |id| + board = history[@step] + return if current_winner? || board[id] + + board = board.dup + board[id] = player + @history = history[0..@step] + [board] + @step += 1 + end + + mutator(:jump_to!) { |step| @step = step } + end +end + +class DisplayBoard < HyperComponent + param :board + + def draw_square(id) + BUTTON(class: :square, id: id) { board[id] } + .on(:click) { Game.handle_click!(id) } + end + + render(DIV) do + (0..6).step(3) do |row| + DIV(class: :board_row) do + (row..row + 2).each { |id| draw_square(id) } + end + end + end +end + +class DisplayGame < HyperComponent + def moves + return unless Game.history.length > 1 + + Game.history.length.times do |move| + LI(key: move) { move.zero? ? "Go to game start" : "Go to move ##{move}" } + .on(:click) { Game.jump_to!(move) } + end + end + + def status + if (winner = Game.current_winner?) + "Winner: #{winner}" + else + "Next player: #{Game.player}" + end + end + + render(DIV, class: :game) do + DIV(class: :game_board) do + DisplayBoard(board: Game.current) + end + DIV(class: :game_info) do + DIV { status } + OL { moves } + end + end +end +``` diff --git a/docs/rails-installation/prerequisites.md b/docs/rails-installation/prerequisites.md index dcc5cbe92..bfb04d6d8 100644 --- a/docs/rails-installation/prerequisites.md +++ b/docs/rails-installation/prerequisites.md @@ -25,7 +25,7 @@ If you don't have an existing Rails app you can create a new Rails app with the following command line: ``` -bundle exec rails new NameOfYourApp -T +rails new NameOfYourApp -T ``` To avoid much pain do not name your app `Application` as this will conflict with all sorts of diff --git a/docs/specs/spec/hyper-state/tic_tac_toe_spec.rb b/docs/specs/spec/hyper-state/tic_tac_toe_spec.rb index 7f5640728..b506424f9 100644 --- a/docs/specs/spec/hyper-state/tic_tac_toe_spec.rb +++ b/docs/specs/spec/hyper-state/tic_tac_toe_spec.rb @@ -54,9 +54,8 @@ CSS describe "Tic Tac Toe Game", :js do - def buttons - find_all('button', wait: 0.2) + find_all("button", wait: 0.0) end def squares @@ -64,7 +63,7 @@ def squares end def lis - find_all('li', wait: 0.2) + find_all("li", wait: 0.0) end def history @@ -96,7 +95,7 @@ def run_the_spec(initial_history) expect(page).to have_content "Winner: X", wait: 0 lis[3].click expect(squares).to eq ["X", "", "X", "", "O", "", "", "", ""] - expect(history).to eq ["Go to game start", "Go to move #1", "Go to move #2", "Go to move #3", "Go to move #4", "Go to move #5",] + expect(history).to eq ["Go to game start", "Go to move #1", "Go to move #2", "Go to move #3", "Go to move #4", "Go to move #5"] expect(page).to have_content "Next player: O", wait: 0 buttons[1].click expect(squares).to eq ["X", "O", "X", "", "O", "", "", "", ""] @@ -106,12 +105,12 @@ def run_the_spec(initial_history) buttons[7].click expect(page).to have_content "Winner: O", wait: 0 lis[3].click - buttons[0].click # note in the original JSX implementation this caused a failure - lis[4].click # because even though the click is invalid, it still erased the history + buttons[0].click # note in the original JSX implementation this caused a failure + lis[4].click # because even though the click is invalid, it still erased the history expect(squares).to eq ["X", "O", "X", "", "O", "", "", "", ""] end - it "first translation" do + it "first translation", skip: "fails see note above at end of run_the_spec" do insert_html "" mount "Game" do # function Square(props) { @@ -224,7 +223,7 @@ def player # }); # } - mutator :handle_click do |i| + mutator :handle_click! do |i| @history = @history[0..@step] current = @history.last squares = current[:squares].dup @@ -242,7 +241,7 @@ def player # }); # } - mutator(:jump_to) { |step| @step = step } + mutator(:jump_to!) { |step| @step = step } # const moves = history.map((step, move) => { # const desc = move ? @@ -259,7 +258,7 @@ def moves @history.length.times do |move| LI(key: move) do move.zero? ? "Go to game start" : "Go to move ##{move}" - end.on(:click) { jump_to(move) } + end.on(:click) { jump_to!(move) } end end @@ -305,7 +304,7 @@ def status render(DIV, class: :game) do DIV(class: :game_board) do Board(squares: current[:squares]) - .on(:click, &method(:handle_click)) + .on(:click, &method(:handle_click!)) end DIV(class: :game_info) do DIV { status } @@ -386,7 +385,7 @@ def player @step.even? ? :X : :O end - mutator :handle_click do |id| + mutator :handle_click! do |id| squares = @history[@step][:squares] return if winner?(squares) || squares[id] @@ -396,14 +395,14 @@ def player @step += 1 end - mutator(:jump_to) { |step| @step = step } + mutator(:jump_to!) { |step| @step = step } def moves return unless @history.length > 1 @history.length.times do |move| LI(key: move) { move.zero? ? "Go to game start" : "Go to move ##{move}" } - .on(:click) { jump_to(move) } + .on(:click) { jump_to!(move) } end end @@ -422,7 +421,7 @@ def status render(DIV, class: :game) do DIV(class: :game_board) do Board(squares: current[:squares]) - .on(:clicked_at, &method(:handle_click)) + .on(:clicked_at, &method(:handle_click!)) end DIV(class: :game_info) do DIV { status } @@ -454,7 +453,7 @@ def winner?(board) it "simplified the board - no hash" do insert_html "" - mount "Game" do + mount "DisplayGame" do class DisplayBoard < HyperComponent param :board fires :clicked_at @@ -473,7 +472,7 @@ def draw_square(id) end end - class Game < HyperComponent + class DisplayGame < HyperComponent before_mount do @history = [[]] @step = 0 @@ -507,7 +506,7 @@ def player state_reader :history - mutator :handle_click do |id| + mutator :handle_click! do |id| board = history[@step] return if current_winner? || board[id] @@ -517,16 +516,14 @@ def player @step += 1 end - mutator(:jump_to) { |step| @step = step } - end + mutator(:jump_to!) { |step| @step = step } - class Game < HyperComponent def moves return unless history.length > 1 history.length.times do |move| LI(key: move) { move.zero? ? "Go to game start" : "Go to move ##{move}" } - .on(:click) { jump_to(move) } + .on(:click) { jump_to!(move) } end end @@ -541,7 +538,7 @@ def status render(DIV, class: :game) do DIV(class: :game_board) do DisplayBoard(board: current) - .on(:clicked_at, &method(:handle_click)) + .on(:clicked_at, &method(:handle_click!)) end DIV(class: :game_info) do DIV { status } @@ -552,4 +549,98 @@ def status end run_the_spec([]) end + + it "using a store" do + insert_html "" + mount "DisplayGame" do + class DisplayBoard < HyperComponent + param :board + + def draw_square(id) + BUTTON(class: :square, id: id) { board[id] } + .on(:click) { Game.handle_click!(id) } + end + + render(DIV) do + (0..6).step(3) do |row| + DIV(class: :board_row) do + (row..row + 2).each { |id| draw_square(id) } + end + end + end + end + + class DisplayGame < HyperComponent + def moves + return unless Game.history.length > 1 + + Game.history.length.times do |move| + LI(key: move) { move.zero? ? "Go to game start" : "Go to move ##{move}" } + .on(:click) { Game.jump_to!(move) } + end + end + + def status + if (winner = Game.current_winner?) + "Winner: #{winner}" + else + "Next player: #{Game.player}" + end + end + + render(DIV, class: :game) do + DIV(class: :game_board) do + DisplayBoard(board: Game.current) + end + DIV(class: :game_info) do + DIV { status } + OL { moves } + end + end + end + + class Game + include Hyperstack::State::Observable + + receives Hyperstack::Application::Boot do + @history = [[]] + @step = 0 + end + + class << self + observer :player do + @step.even? ? :X : :O + end + + observer :current do + @history[@step] + end + + state_reader :history + + WINNING_COMBOS = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]] + + def current_winner? + WINNING_COMBOS.each do |a, b, c| + return current[a] if current[a] && current[a] == current[b] && current[a] == current[c] + end + false + end + + mutator :handle_click! do |id| + board = history[@step] + return if current_winner? || board[id] + + board = board.dup + board[id] = player + @history = history[0..@step] + [board] + @step += 1 + end + + mutator(:jump_to!) { |step| @step = step } + end + end + end + run_the_spec([]) + end end diff --git a/readme.md b/readme.md index e58b98bbc..5fa92cd83 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,9 @@ # Hyperstack [![Build Status](https://travis-ci.com/hyperstack-org/hyperstack.svg?branch=edge)](https://travis-ci.com/hyperstack-org/hyperstack) +[![Gem Version](https://badge.fury.io/rb/rails-hyperstack.svg)](https://badge.fury.io/rb/rails-hyperstack) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Slack](https://img.shields.io/badge/slack-hyperstack.org/slack-yellow.svg?logo=slack)](https://join.slack.com/t/hyperstack-org/shared_invite/enQtNTg4NTI5NzQyNTYyLWQ4YTZlMGU0OGIxMDQzZGIxMjNlOGY5MjRhOTdlMWUzZWYyMTMzYWJkNTZmZDRhMDEzODA0NWRkMDM4MjdmNDE) -This is the edge branch - the system is stable, and there are approx 1000 test specs passig. For current status on development see [current status.](https://github.com/hyperstack-org/hyperstack/blob/edge/current-status.md) Hyperstack is a Ruby-based DSL and modern web toolkit for building spectacular, interactive web applications fast! @@ -10,13 +12,14 @@ Hyperstack is a Ruby-based DSL and modern web toolkit for building spectacular, + A well documented and stable Ruby DSL for wrapping **React** and **ReactRouter** as well as **any** JavaScript library or component. No need to learn JavaScript! + **Isomorphic Models with bi-directional data** so you can access your models as if they were on the client. -All that means you can write simple front-end code like this: +This means you can write simple front-end code like this: ```ruby class GoodBooksToRead < HyperComponent render(UL) do Book.good_books.each do |book| - LI { "Read #{book.name}" }.on(:click) { display book } if book.available? + LI { "Read #{book.name}" } + .on(:click) { display book } if book.available? end end end @@ -26,16 +29,31 @@ In the code above, if the `good_books` scope changed (even on the server), the U ## Website and documentation -Please see the documentation site for full documentation, or find the same content in the [/docs](/docs) folder in this repo if you prefer. +Please see the website site for full documentation: -+ Website: [hyperstack.org](https://hyperstack.org) -+ Docs: [docs.hyperstack.org](https://docs.hyperstack.org/) ++ [hyperstack.org](https://hyperstack.org) ## Setup and installation -You can be up and running in **less than 5 minutes**. Just follow the simple setup guide for a new Rails application all correctly configured and ready to go with Hyperstack. +You can be up and running in **less than 5 minutes**. Just follow the simple setup guide for to add Hyperstack to a new or existing Rails application: + ++ [Setup and Installation docs](https://docs.hyperstack.org/rails-installation/using-the-installer) + +## Development Status + +We now are issuing 1.0 release candidates weekly until all issues are either closed or moved to post 1.0 release status. **Your opinion matters, plus take some time to up/down vote or comment on issues of interest.** + + +| Release
Date | Version | Open
Issues | Documentation
Sections
Draft Ready | Documentation
Sections
WIP | +|--------------|---------|-------------|-------|------| +| March 29, 2021 | 1.0.alpha1.6 | 167 | 35 | 10 | + +> Open issues includes enhancements, documentation, and discussion issues as well as few bugs. +> +> The documentation WIP (work in progress) numbers are approx, as more sections may be added. + ++ [Older Status Reports](https://github.com/hyperstack-org/hyperstack/blob/edge/current-status.md) -+ [Setup and Installation docs](https://docs.hyperstack.org/installation/man-installation) ## Community and support @@ -51,40 +69,14 @@ Please ask technical questions on StackOverflow as the answers help people in th + Please ask questions here: https://hyperstack.org/question + All the `hyperstack` tagged questions are here: https://hyperstack.org/questions -## Roadmap - -Hyperstack is evolving; we are improving it all the time. As much as we love Ruby today, we see ourselves embracing new languages in the future. [Crystal](https://crystal-lang.org/) perhaps? We are also watching [Wasm](https://webassembly.org/) carefully. - -Please see the [ROADMAP][] file for more information. - -[roadmap]: ROADMAP.md -[current status]: current-status.md - ## Contributing If you would like to help, please read the [CONTRIBUTING][] file for suggestions. [contributing]: CONTRIBUTING.md -## Links - -+ Rubygems: https://rubygems.org/profiles/hyperstack -+ Travis: https://travis-ci.org/hyperstack-org -+ Website edge: https://edge.hyperstack.org/ -+ Website master: https://hyperstack.org/ - ## License Released under the MIT License. See the [LICENSE][] file for further details. [license]: LICENSE - -## History - -Hyperstack is an evolution of [Ruby-Hyperloop](https://github.com/ruby-hyperloop). We decided to rename the project to drop the Ruby suffix and also took the opportunity to simplify the repos and project overall. - -+ Old website: http://ruby-hyperloop.org/ -+ Old Github: https://github.com/ruby-hyperloop -+ Legacy branch: https://github.com/hyperstack-org/hyperstack/tree/hyperloop-legacy -+ Legacy install script: https://github.com/hyperstack-org/hyperstack/tree/hyperloop-legacy/install - diff --git a/release-notes/1.0.alpha1.6.md b/release-notes/1.0.alpha1.6.md index 8852f2e40..f2e3a91b9 100644 --- a/release-notes/1.0.alpha1.6.md +++ b/release-notes/1.0.alpha1.6.md @@ -1,17 +1,17 @@ -## 1.0alpha1.6 - 2021-03-21 +## 1.0alpha1.6 - 2021-03-29 ### New Major Features + Now compatible with Opal 1.x and Rails 6.x: Tested with Opal ~>1.0 + Rails ~>5.0 and Rails ~>6.0, and Opal ~>0.11 and Rails ~>5.0. + You can run Hypermodel connections on Redis (instead of ActiveRecord). This gives about a 10% performance boost, and there will be even better performance as the Redis adapter is optimized. + The `rails-hyperstack` gem now includes a file `hyperstack/server_side_auto_require` that you may require from the `hyperstack.rb` initializer. -This file will add the capability to the Rails ActiveSupport Dependencies to automatically look for files in the matching main app sub directory when loaded first from the `hyperstack` directory. This allows you to leave serverside functionality in the main app subdirectories, and only include definitions relevant to the client side in the `hyperstack` directories. See https://github.com/hyperstack-org/hyperstack/issues/361 for more info. ATM requiring this file will set the Rails autoloader mode to :classic. +This file will add the capability to Rails ActiveSupport Dependencies to automatically look for files in the matching main app sub directory when loaded first from the `hyperstack` directory. This allows you to leave serverside functionality in the main app subdirectories, and only include definitions relevant to the client side in the `hyperstack` directories. See https://github.com/hyperstack-org/hyperstack/issues/361 for more info. ATM requiring this file will set the Rails autoloader mode to :classic. + Complete rewrite of Hyperspec with much improved syntax and many new features including ability to use with any Rack application. See [the docs](https://docs.hyperstack.org/development-workflow/hyper-spec) for details. But don't worry its all backwards compatible with the old syntax. + Much more robust gem installer. ### Breaking Changes -+ [#350](https://github.com/hyperstack-org/hyperstack/issues/350) Move server side after and every methods to include module. You are only effected if you are using the `after` or `every` methods on the server. ++ [#350](https://github.com/hyperstack-org/hyperstack/issues/350) Moved the server side `after` and `every` methods to an include module. You are only effected if you are using the `after` or `every` methods on the server. + You may encounter some breakage due to configuration changes. Rails and the JS world have changed a lot recently, and its hard to insure that the new Gems will work correctly in all situations without some adjustment to your configuration. Please report any issues that you encounter. ### Security @@ -36,6 +36,9 @@ This file will add the capability to the Rails ActiveSupport Dependencies to aut ### Fixed + [#380](https://github.com/hyperstack-org/hyperstack/issues/380) Specs now running with Opal `arity_checking` enabled + [#375](https://github.com/hyperstack-org/hyperstack/issues/375) Scopes could get out of sync ++ [#370](https://github.com/hyperstack-org/hyperstack/issues/370) Fixed deprecation message during hyperstack:install ++ [#369](https://github.com/hyperstack-org/hyperstack/issues/369) hyperstack:install now adds javascripts link to manifest.js file ++ [#368](https://github.com/hyperstack-org/hyperstack/issues/368) hyperstack:install now checks for webpacker gem + [#358](https://github.com/hyperstack-org/hyperstack/issues/358) Incoming broadcast messages were not working if primary key was not `:id` + [#354](https://github.com/hyperstack-org/hyperstack/issues/354) Correctly set react variant in production + [#347](https://github.com/hyperstack-org/hyperstack/issues/347) Fixed Rails generator and React import misleading comments diff --git a/ruby/hyper-component/lib/hyperstack/component/version.rb b/ruby/hyper-component/lib/hyperstack/component/version.rb index 8782c7348..75a70baa7 100644 --- a/ruby/hyper-component/lib/hyperstack/component/version.rb +++ b/ruby/hyper-component/lib/hyperstack/component/version.rb @@ -1,5 +1,5 @@ module Hyperstack module Component - VERSION = '1.0.alpha1.5' # '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' # '1.0.alpha1.5' end end diff --git a/ruby/hyper-console/lib/hyperloop/console/version.rb b/ruby/hyper-console/lib/hyperloop/console/version.rb index 855ca1ff7..0cd35bbc0 100644 --- a/ruby/hyper-console/lib/hyperloop/console/version.rb +++ b/ruby/hyper-console/lib/hyperloop/console/version.rb @@ -1,5 +1,5 @@ module Hyperloop module Console - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end diff --git a/ruby/hyper-i18n/lib/hyper-i18n/version.rb b/ruby/hyper-i18n/lib/hyper-i18n/version.rb index b718c956e..3ddc5a0f4 100644 --- a/ruby/hyper-i18n/lib/hyper-i18n/version.rb +++ b/ruby/hyper-i18n/lib/hyper-i18n/version.rb @@ -1,3 +1,3 @@ module HyperI18n - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end diff --git a/ruby/hyper-i18n/lib/hyperstack/i18n/version.rb b/ruby/hyper-i18n/lib/hyperstack/i18n/version.rb index 87c466fff..88a1fb701 100644 --- a/ruby/hyper-i18n/lib/hyperstack/i18n/version.rb +++ b/ruby/hyper-i18n/lib/hyperstack/i18n/version.rb @@ -1,5 +1,5 @@ module Hyperstack module I18n - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end diff --git a/ruby/hyper-model/lib/hyper_model/version.rb b/ruby/hyper-model/lib/hyper_model/version.rb index 40c67ccbe..b43d6bfe4 100644 --- a/ruby/hyper-model/lib/hyper_model/version.rb +++ b/ruby/hyper-model/lib/hyper_model/version.rb @@ -1,3 +1,3 @@ module HyperModel - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end diff --git a/ruby/hyper-operation/lib/hyper-operation/version.rb b/ruby/hyper-operation/lib/hyper-operation/version.rb index c65efaf7b..4e2c99f4d 100644 --- a/ruby/hyper-operation/lib/hyper-operation/version.rb +++ b/ruby/hyper-operation/lib/hyper-operation/version.rb @@ -1,5 +1,5 @@ module Hyperstack class Operation - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end diff --git a/ruby/hyper-router/lib/hyperstack/router/version.rb b/ruby/hyper-router/lib/hyperstack/router/version.rb index 70000bb0c..9e4fcdffa 100644 --- a/ruby/hyper-router/lib/hyperstack/router/version.rb +++ b/ruby/hyper-router/lib/hyperstack/router/version.rb @@ -1,3 +1,3 @@ module HyperRouter - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end diff --git a/ruby/hyper-spec/lib/hyper-spec/version.rb b/ruby/hyper-spec/lib/hyper-spec/version.rb index 9401ff866..694943e86 100644 --- a/ruby/hyper-spec/lib/hyper-spec/version.rb +++ b/ruby/hyper-spec/lib/hyper-spec/version.rb @@ -1,3 +1,3 @@ module HyperSpec - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end diff --git a/ruby/hyper-state/lib/hyperstack/state/version.rb b/ruby/hyper-state/lib/hyperstack/state/version.rb index dec3f80ac..8e4691e4d 100644 --- a/ruby/hyper-state/lib/hyperstack/state/version.rb +++ b/ruby/hyper-state/lib/hyperstack/state/version.rb @@ -1,5 +1,5 @@ module Hyperstack module State - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end diff --git a/ruby/hyper-store/lib/hyperstack/legacy/store/version.rb b/ruby/hyper-store/lib/hyperstack/legacy/store/version.rb index f139568a0..17e0bf336 100644 --- a/ruby/hyper-store/lib/hyperstack/legacy/store/version.rb +++ b/ruby/hyper-store/lib/hyperstack/legacy/store/version.rb @@ -1,7 +1,7 @@ module Hyperstack module Legacy module Store - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end end diff --git a/ruby/hyper-trace/lib/hyper_trace/version.rb b/ruby/hyper-trace/lib/hyper_trace/version.rb index 3de30d0ba..3efb17d8a 100644 --- a/ruby/hyper-trace/lib/hyper_trace/version.rb +++ b/ruby/hyper-trace/lib/hyper_trace/version.rb @@ -1,3 +1,3 @@ module HyperTrace - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end diff --git a/ruby/hyperstack-config/lib/hyperstack/config/version.rb b/ruby/hyperstack-config/lib/hyperstack/config/version.rb index 25f21801a..916297c5a 100644 --- a/ruby/hyperstack-config/lib/hyperstack/config/version.rb +++ b/ruby/hyperstack-config/lib/hyperstack/config/version.rb @@ -1,5 +1,5 @@ module Hyperstack module Config - VERSION = '1.0.alpha1.5' + VERSION = '1.0.alpha1.6' end end diff --git a/ruby/rails-hyperstack/lib/hyperstack/version.rb b/ruby/rails-hyperstack/lib/hyperstack/version.rb index 82971b1a0..fa2124dcb 100644 --- a/ruby/rails-hyperstack/lib/hyperstack/version.rb +++ b/ruby/rails-hyperstack/lib/hyperstack/version.rb @@ -1,3 +1,3 @@ module Hyperstack - ROUTERVERSION = VERSION = '1.0.alpha1.5' + ROUTERVERSION = VERSION = '1.0.alpha1.6' end