uni_rails 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3dbb41ea67dff2755cb5b77eae07f174a95bf99de2cf03a084739213c99033c9
4
- data.tar.gz: 5c9414944b4616651a429657025c58444f330ceea500f164a92a8d7afcefc824
3
+ metadata.gz: 7fd4384d48263e99c4c7d16378ca8f9294c5effbca7f498d656de80f2618456d
4
+ data.tar.gz: 52c6cbed8459c15fc9475460c398507f39e046d20e50657a586c2de6ceb2d00b
5
5
  SHA512:
6
- metadata.gz: 980ece2224b2c31320c749eb07676912f27bf5285d6dcefcacae4196f15061140185cb8b51a565d4605db0fd95a669ec543b1750fcdeb024fab4cc7d5a61d93a
7
- data.tar.gz: 49e8aa1ff7ec06d23cfa5a07d8d9546e036fe6255c71f6766faa42416631d0fdaf9d572333ebd066f6265e693f731586f77e19f3858f929f351cd82f28c4ff99
6
+ metadata.gz: 2aa6a2c0d01f9ab5a7c3962934655d0251047bbc9d72dc771f501566917e9f83c2a1ebceb6dddebaad23526eb26a28553d543a6a7e16145ff40984bc206b2c4c
7
+ data.tar.gz: a3616980a5dcbb57517232d2ad0986d4a08dc6fd924f977596e4330a612bad7f36703bf2f25b6c8c5b3d38275e05a8f9867db07a7ed6d161165fbf6e3134a276
data/README.md CHANGED
@@ -8,12 +8,13 @@ Check out our [examples](/examples) to understand how the library creates Rails
8
8
 
9
9
  ## Installation & Usage
10
10
 
11
- See some examples of how the UniRails library can be used
11
+ See some examples of how the UniRails library can be used. Running an example is a easy as `ruby filename.rb`
12
12
 
13
13
  - [Hello world](/examples/hello-world.rb)
14
14
  - [Todos app (JSON API)](/examples/todos-api.rb)
15
15
  - [Todos app (Rails scaffold)](/examples/todos-scaffold.rb) based off `bin/rails g scaffold todo name completed_at:datetime`
16
16
  - [Todos app (Hotwire)](/examples/todos-hotwire.rb) based off online article: [turbo-rails-101-todo-list](https://www.colby.so/posts/turbo-rails-101-todo-list) by David Colby
17
+ - [App using StimulusJS](/examples/stimulus-app.rb)
17
18
  - [App using Puma server](/examples/server-puma-app.rb)
18
19
  - [App using Falcon server](/examples/server-falcon-app.rb)
19
20
 
@@ -0,0 +1,88 @@
1
+ ENV["SECRET_KEY_BASE"] = "1212312313"
2
+ ENV["DATABASE_URL"] = "sqlite3:///#{__dir__}/database.sqlite"
3
+
4
+ require "bundler/inline"
5
+
6
+ gemfile do
7
+ source "https://www.rubygems.org"
8
+ gem "uni_rails"
9
+ gem "sqlite3", "~> 1.7"
10
+ gem "byebug"
11
+ end
12
+
13
+ require "uni_rails"
14
+ require "sqlite3"
15
+ require "byebug"
16
+
17
+ # ==== ROUTES ====
18
+ UniRails::App.routes.append do
19
+ root "resource_names#new"
20
+ resources :resource_names
21
+ end
22
+
23
+ # ==== DB SCHEMA ====
24
+ ActiveRecord::Base.establish_connection
25
+ ActiveRecord::Schema.define do
26
+ create_table :resources, force: :cascade do |t|
27
+ t.string :title
28
+ end
29
+ end
30
+
31
+ # ==== MODELS ====
32
+ class Resource < ActiveRecord::Base
33
+ end
34
+
35
+ # ==== SEEDS ====
36
+ # Create your existing records here
37
+
38
+ # ==== CONTROLLERS ====
39
+ class ResourceNamesController < ActionController::Base
40
+ layout 'application'
41
+
42
+ def new
43
+ end
44
+
45
+ def create
46
+ end
47
+ end
48
+
49
+ # ==== IMPORT MAPS ====
50
+ UniRails.import_maps(
51
+ 'stimulus' => 'https://unpkg.com/@hotwired/stimulus/dist/stimulus.js'
52
+ )
53
+
54
+
55
+ # ==== JAVASCRTIP ====
56
+ UniRails.javascript <<~JAVASCRIPT
57
+ import { Application, Controller } from "stimulus"
58
+ window.Stimulus = Application.start()
59
+
60
+ Stimulus.register("hello", class extends Controller {
61
+ connect() {
62
+ console.log("hello world")
63
+ }
64
+ })
65
+
66
+ JAVASCRIPT
67
+
68
+ # ==== CSS ====
69
+ UniRails.css <<~CSS
70
+ html { background-color:#EEE; }
71
+ body { width:500px; height:700px; margin:auto;
72
+ background-color:white; padding:1rem;
73
+ }
74
+ form {
75
+ label { display: block; }
76
+ input[type="submit"] { display: block; margin-top:1rem; }
77
+ .field_with_errors { color:red; display:inline; }
78
+ }
79
+ CSS
80
+
81
+ # ==== VIEWS ====
82
+ UniRails.register_view "resource_names/new.html.erb", <<~HTML
83
+ HTML
84
+
85
+ UniRails.register_view "resource_names/show.html.erb", <<~HTML
86
+ HTML
87
+
88
+ UniRails.run(Port: 3000)
@@ -1,5 +1,3 @@
1
- # Run the application
2
- # $ ruby hello-world.rb
3
1
 
4
2
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
5
3
 
@@ -1,5 +1,3 @@
1
- # Run the application
2
- # $ ruby server-falcon-app.rb
3
1
 
4
2
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
5
3
 
@@ -1,5 +1,3 @@
1
- # Run the application
2
- # $ ruby server-puma-app.rb
3
1
 
4
2
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
5
3
 
@@ -0,0 +1,41 @@
1
+
2
+ ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
3
+
4
+ require "bundler/inline"
5
+
6
+ gemfile(true) do
7
+ source "https://rubygems.org"
8
+ gem 'uni_rails'
9
+ end
10
+
11
+ require 'uni_rails'
12
+
13
+ UniRails::App.routes.append do
14
+ root 'pages#index'
15
+ end
16
+
17
+ UniRails.import_maps(
18
+ 'stimulus' => 'https://unpkg.com/@hotwired/stimulus/dist/stimulus.js'
19
+ )
20
+
21
+ UniRails.javascript <<~JAVASCRIPT
22
+ import { Application, Controller } from "stimulus"
23
+ window.Stimulus = Application.start()
24
+
25
+ Stimulus.register("hello", class extends Controller {
26
+ connect() {
27
+ console.log("hello world")
28
+ }
29
+ })
30
+ JAVASCRIPT
31
+
32
+ class PagesController < ActionController::Base
33
+ layout 'application'
34
+ def index;end
35
+ end
36
+
37
+ UniRails.register_view "pages/index.html.erb", <<~HTML
38
+ <div data-controller="hello">Check out the dev console to see "hello world"</div>
39
+ HTML
40
+
41
+ UniRails.run(Port: 3000)
@@ -1,5 +1,3 @@
1
- # Run the application
2
- # $ ruby todos-api.rb
3
1
 
4
2
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
5
3
  ENV['DATABASE_URL'] = "sqlite3:///#{Dir.pwd}/todos-api.sqlite"
@@ -1,6 +1,4 @@
1
1
  # Based on the Hotwire tutorial: https://www.colby.so/posts/turbo-rails-101-todo-list
2
- # Run the application
3
- # $ ruby todos-hotwire.rb
4
2
 
5
3
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
6
4
  ENV['DATABASE_URL'] = "sqlite3:///#{Dir.pwd}/todos-hotwire.sqlite"
@@ -1,5 +1,3 @@
1
- # Run the application
2
- # $ ruby todos-scaffold.rb
3
1
 
4
2
  ENV['SECRET_KEY_BASE'] = 'my_secret_key_base'
5
3
  ENV['DATABASE_URL'] = "sqlite3:///#{Dir.pwd}/todos-scaffold.sqlite"
data/exe/unirails ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # require "byebug"
4
+ # byebug
5
+
6
+ assets_path = File.expand_path('../assets', __dir__)
7
+
8
+ options = {}
9
+ case ARGV[0]
10
+ when "new"
11
+ filename = ARGV[1]
12
+ File.open(filename, 'wb+') do |f|
13
+ f.write File.read File.join(assets_path, 'templates', 'default.txt')
14
+ end
15
+ else
16
+ puts "unknown command"
17
+ puts "Usage: unirails new <filename>"
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UniRails
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uni_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Barret
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-19 00:00:00.000000000 Z
11
+ date: 2024-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '7.1'
19
+ version: 7.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '7.1'
26
+ version: 7.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rackup
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -55,7 +55,8 @@ dependencies:
55
55
  description:
56
56
  email:
57
57
  - barret.alx@gmail.com
58
- executables: []
58
+ executables:
59
+ - unirails
59
60
  extensions: []
60
61
  extra_rdoc_files: []
61
62
  files:
@@ -63,12 +64,15 @@ files:
63
64
  - LICENSE.txt
64
65
  - README.md
65
66
  - Rakefile
67
+ - assets/templates/default.txt
66
68
  - examples/hello-world.rb
67
69
  - examples/server-falcon-app.rb
68
70
  - examples/server-puma-app.rb
71
+ - examples/stimulus-app.rb
69
72
  - examples/todos-api.rb
70
73
  - examples/todos-hotwire.rb
71
74
  - examples/todos-scaffold.rb
75
+ - exe/unirails
72
76
  - lib/uni_rails.rb
73
77
  - lib/uni_rails/app.rb
74
78
  - lib/uni_rails/app/css.rb
@@ -100,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
104
  - !ruby/object:Gem::Version
101
105
  version: '0'
102
106
  requirements: []
103
- rubygems_version: 3.5.3
107
+ rubygems_version: 3.4.21
104
108
  signing_key:
105
109
  specification_version: 4
106
110
  summary: A Ruby library to create single-file Rails application