react-rails-api 0.1.0 → 0.1.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: 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