react-rails-api 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8e040cc4f348c9b64edcdc489d99f33ec3a6a86ada5d03fda56dd1f166d17b7
4
- data.tar.gz: 339ea45fa23108317cf96be0d3158cd5cbf6882bfbe560c5bf82ce326c7b9f0b
3
+ metadata.gz: 7963e08485a82f7460f4919020848425e5f18884037db56d0915f678bc414b5e
4
+ data.tar.gz: cbfa97efba5b75f73487e25188627ccd0ae807649c0db1a86db49bfd92ded5ef
5
5
  SHA512:
6
- metadata.gz: ba8f977ef5d5abe841a7bdc9740f14aea92647cc94e9be1cf265e0e455ab14b52df2afd7184700549f1d37f96bf88dc8e7fca0d7a82b4ca0adaacd355de297b4
7
- data.tar.gz: b22775270e2e52638178ed3b6d62beca19ecb0dc33f212ce93b4906e80c1f2f9212302267f80347b3af0061c5e8400c189a221c85dfda6dc04ea3ce26f44a5ff
6
+ metadata.gz: e10164463b98a983115614244f8660b64fb58b600c696dd23f2ac5e4386fe141cafddcbb81234f1eb445671ffcaea1839f73e30103bcbf5cfe0052b31965df43
7
+ data.tar.gz: 6dae3bc0c8ef08f6646e86f7c2f2e2ef2c50376deb5ec222f2f77a030c021d56074fc25b87c3b6552533a6e9e28144ab1e73a624f6d90c5f8da33e568e10343a
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Ruby Version](https://img.shields.io/badge/ruby-~%3E%202.5-red.svg)]()
1
+ [![Ruby Version](https://img.shields.io/badge/ruby-~%3E%202.5-red.svg)](https://github.com/eonu/react-rails-api/blob/38f50a1d30f33cf7b818a5c939fe5d99c1a758a2/react-rails-api.gemspec#L20)
2
2
  [![Gem](https://img.shields.io/gem/v/react-rails-api.svg)](https://rubygems.org/gems/react-rails-api)
3
3
  [![License](https://img.shields.io/github/license/eonu/react-rails-api.svg)](https://github.com/eonu/react-rails-api/blob/master/LICENSE)
4
4
 
@@ -6,14 +6,12 @@
6
6
 
7
7
  All-in-one application generator enabling the integration of a React front-end and a Ruby-on-Rails API back-end with a CMS via ActiveAdmin.
8
8
 
9
- ---
10
-
11
9
  <p align="center">
12
- <img width="600px" src="https://i.ibb.co/9y3jyBK/react-rails-api.png">
10
+ <img width="500px" src="https://i.ibb.co/9y3jyBK/react-rails-api.png">
13
11
  <p align="center"><em>Image courtesy of <a href="https://heroku.com">Heroku</a>.</em></p>
14
12
  </p>
15
13
 
16
- This is an easy-to-use generator to implement the modern web application stack described [here](https://blog.heroku.com/a-rock-solid-modern-web-stack), by Heroku designer Charlie Gleason.
14
+ This is an easy-to-use generator to implement the modern web application stack described [here](https://blog.heroku.com/a-rock-solid-modern-web-stack) by Heroku designer Charlie Gleason.
17
15
 
18
16
  ## Requirements
19
17
 
@@ -32,13 +30,40 @@ $ gem install react-rails-api
32
30
 
33
31
  ```bash
34
32
  $ react-rails
35
-
36
- Commands:
37
- react-rails new [PATH] # Initialise a React/Rails API application.
33
+ Usage:
34
+ react-rails new [PATH]
38
35
 
39
36
  Options:
40
37
  [--database], [--no-database] # Integrate ActiveRecord (and Postgres).
41
38
  # Default: true
39
+
40
+ Initialise a React/Rails API application.
42
41
  ```
43
42
 
44
- If the `--database` flag is set to true (which is the default), a prompt will also ask if you'd like to integrate [ActiveAdmin](https://activeadmin.info/) into the application.
43
+ ### Creating an application
44
+
45
+ ```bash
46
+ $ react-rails new demo-app
47
+ ```
48
+
49
+ If the `--database` flag is set to true (which is the default), a prompt will also ask if you'd like to integrate [ActiveAdmin](https://activeadmin.info/) into the application.
50
+
51
+ If you would not like to integrate ActiveRecord (and a Postgres database), make sure to use the `--no-database` flag:
52
+
53
+ ```bash
54
+ $ react-rails new demo-app --no-database
55
+ ```
56
+
57
+ ### Running an application
58
+
59
+ There are two `rake` tasks that allow you to run development and production builds of an application (using [Foreman](https://github.com/ddollar/foreman)):
60
+
61
+ - `start:development` - Starts a development build of the application (running `Procfile.dev`).
62
+ - `start:production` - Starts a production build of the application (running `Procfile`).
63
+
64
+ ## More information
65
+
66
+ For more information about how to use this stack, please read the following blog posts by Charlie Gleason:
67
+
68
+ - https://blog.heroku.com/a-rock-solid-modern-web-stack
69
+ - https://medium.com/superhighfives/a-top-shelf-web-stack-rails-5-api-activeadmin-create-react-app-de5481b7ec0b
@@ -1,3 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'react-rails-api'
3
- ReactRailsAPI::CLI.start
3
+
4
+ if ARGV.empty? || (ARGV.size == 1 && ARGV.first == '-h')
5
+ ReactRailsAPI::CLI.start %w[-h new]
6
+ else
7
+ ReactRailsAPI::CLI.start
8
+ end
@@ -4,9 +4,8 @@ require_relative 'version'
4
4
  class ReactRailsAPI::CLI < Thor
5
5
  TEMPLATE = File.join __dir__, 'template.rb'
6
6
 
7
- class_option :database, type: :boolean, :desc => "Integrate ActiveRecord (and Postgres).", default: true
8
-
9
- desc 'new [PATH]', "\e[90mInitialise a React/Rails API application.\e[0m"
7
+ method_option :database, type: :boolean, desc: 'Integrate ActiveRecord (and Postgres).', default: true
8
+ desc "new [\e[1mPATH\e[0m]", "\e[90mInitialise a React/Rails API application.\e[0m"
10
9
  def new(path)
11
10
  opts = default_options
12
11
  opts << '--database=postgresql' if options[:database]
@@ -16,31 +15,11 @@ class ReactRailsAPI::CLI < Thor
16
15
  end
17
16
 
18
17
  map %w[--version -v] => :version
19
- desc 'version, -v', "\e[90mDisplay installed react-rails version.\e[0m"
18
+ desc '-v', "\e[90mDisplay installed React/Rails API gem version.\e[0m"
20
19
  def version
21
20
  puts ReactRailsAPI::VERSION
22
21
  end
23
22
 
24
- def self.help(shell, subcommand = false)
25
- list = printable_commands(true, subcommand)
26
- Thor::Util.thor_classes_in(self).each do |klass|
27
- list += klass.printable_commands(false)
28
- end
29
- list.sort! { |a, b| a[0] <=> b[0] }
30
- list.reject! { |e| /.*help.*/.match? e.first }
31
- list.map! {|c| c.map {|s| s.gsub('decrypt', ?d).gsub('encrypt', ?e)} }
32
-
33
- if defined?(@package_name) && @package_name
34
- shell.say "#{@package_name} commands:"
35
- else
36
- shell.say "Commands:"
37
- end
38
-
39
- shell.print_table(list, :indent => 2, :truncate => true)
40
- shell.say
41
- class_options_help(shell)
42
- end
43
-
44
23
  no_tasks do
45
24
  def default_options
46
25
  %w[
@@ -10,6 +10,7 @@ puts if database
10
10
  gem_group :development, :test do
11
11
  gem 'rspec-rails'
12
12
  gem 'sqlite3', '~> 1.3.6'
13
+ gem 'foreman', '~> 0.85.0'
13
14
  end
14
15
 
15
16
  gem_group :production do
@@ -105,9 +106,11 @@ after_bundle do
105
106
  inside 'client' do
106
107
  # Add a proxy for the Rails API server (on the client)
107
108
  inject_into_file 'package.json', " \"proxy\": \"http://localhost:3001\",\n", after: "\"version\": \"0.1.0\",\n"
109
+ # Add environment variable for skipping preflight checks (client-level)
110
+ file '.env', template('.env.tt')
108
111
  end
109
112
 
110
- # Add environment variable for skipping preflight checks
113
+ # Add environment variable for skipping preflight checks (top-level)
111
114
  file '.env', template('.env.tt')
112
115
 
113
116
  # Prevent out-of-date yarn package errors
@@ -8,6 +8,6 @@
8
8
  "scripts": {
9
9
  "build": "yarn --cwd client install && yarn --cwd client build",
10
10
  "deploy": "cp -a client/build/. public/",
11
- "heroku-postbuild": "yarn build && yarn deploy"
11
+ "postinstall": "yarn build && yarn deploy"
12
12
  }
13
13
  }
@@ -1,5 +1,5 @@
1
1
 
2
- scope '/api' do
2
+ scope :api do
3
3
  # Register your API resources here after scaffolding them e.g.
4
4
  # resources :products
5
5
  # resources :customers
@@ -1,8 +1,13 @@
1
1
  namespace :start do
2
+ desc 'Start development server'
2
3
  task :development do
3
- exec 'heroku local -f Procfile.dev'
4
+ exec 'foreman start -f Procfile.dev'
5
+ end
6
+
7
+ desc 'Start production server'
8
+ task :production do
9
+ exec 'NPM_CONFIG_PRODUCTION=true npm run postinstall && foreman start'
4
10
  end
5
11
  end
6
12
 
7
- desc 'Start development server'
8
13
  task :start => 'start:development'
@@ -2,7 +2,7 @@ module ReactRailsAPI
2
2
  VERSION = {
3
3
  major: 0,
4
4
  minor: 1,
5
- patch: 0,
5
+ patch: 1,
6
6
  meta: nil
7
7
  }.values.reject(&:nil?).map(&:to_s)*?.
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react-rails-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Onuonga
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-03-08 00:00:00.000000000 Z
12
+ date: 2019-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor