reactrb 0.7.42

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +6 -0
  3. data/.gitignore +33 -0
  4. data/.travis.yml +9 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE +19 -0
  7. data/README.md +117 -0
  8. data/Rakefile +28 -0
  9. data/config.ru +16 -0
  10. data/example/examples/Gemfile +7 -0
  11. data/example/examples/app/basics.js.rb +42 -0
  12. data/example/examples/app/items.rb +11 -0
  13. data/example/examples/app/jquery.js +5 -0
  14. data/example/examples/app/nodes.rb +61 -0
  15. data/example/examples/app/react-router.js +6 -0
  16. data/example/examples/app/react_api_demo.rb +29 -0
  17. data/example/examples/app/rerendering.rb +72 -0
  18. data/example/examples/app/reuse.rb +59 -0
  19. data/example/examples/app/show.rb +52 -0
  20. data/example/examples/config.ru +38 -0
  21. data/example/rails-tutorial/.gitignore +17 -0
  22. data/example/rails-tutorial/Gemfile +51 -0
  23. data/example/rails-tutorial/README.rdoc +28 -0
  24. data/example/rails-tutorial/Rakefile +6 -0
  25. data/example/rails-tutorial/app/assets/images/.keep +0 -0
  26. data/example/rails-tutorial/app/assets/javascripts/application.rb +15 -0
  27. data/example/rails-tutorial/app/assets/stylesheets/application.css +15 -0
  28. data/example/rails-tutorial/app/controllers/application_controller.rb +6 -0
  29. data/example/rails-tutorial/app/controllers/concerns/.keep +0 -0
  30. data/example/rails-tutorial/app/controllers/home_controller.rb +6 -0
  31. data/example/rails-tutorial/app/helpers/application_helper.rb +2 -0
  32. data/example/rails-tutorial/app/mailers/.keep +0 -0
  33. data/example/rails-tutorial/app/models/.keep +0 -0
  34. data/example/rails-tutorial/app/models/concerns/.keep +0 -0
  35. data/example/rails-tutorial/app/views/components.rb +3 -0
  36. data/example/rails-tutorial/app/views/components/home/show.rb +47 -0
  37. data/example/rails-tutorial/app/views/layouts/application.html.erb +14 -0
  38. data/example/rails-tutorial/bin/bundle +3 -0
  39. data/example/rails-tutorial/bin/rails +8 -0
  40. data/example/rails-tutorial/bin/rake +8 -0
  41. data/example/rails-tutorial/bin/setup +29 -0
  42. data/example/rails-tutorial/bin/spring +15 -0
  43. data/example/rails-tutorial/config.ru +4 -0
  44. data/example/rails-tutorial/config/application.rb +26 -0
  45. data/example/rails-tutorial/config/boot.rb +3 -0
  46. data/example/rails-tutorial/config/database.yml +25 -0
  47. data/example/rails-tutorial/config/environment.rb +5 -0
  48. data/example/rails-tutorial/config/environments/development.rb +41 -0
  49. data/example/rails-tutorial/config/environments/production.rb +79 -0
  50. data/example/rails-tutorial/config/environments/test.rb +42 -0
  51. data/example/rails-tutorial/config/initializers/assets.rb +11 -0
  52. data/example/rails-tutorial/config/initializers/backtrace_silencers.rb +7 -0
  53. data/example/rails-tutorial/config/initializers/cookies_serializer.rb +3 -0
  54. data/example/rails-tutorial/config/initializers/filter_parameter_logging.rb +4 -0
  55. data/example/rails-tutorial/config/initializers/inflections.rb +16 -0
  56. data/example/rails-tutorial/config/initializers/mime_types.rb +4 -0
  57. data/example/rails-tutorial/config/initializers/session_store.rb +3 -0
  58. data/example/rails-tutorial/config/initializers/wrap_parameters.rb +14 -0
  59. data/example/rails-tutorial/config/locales/en.yml +23 -0
  60. data/example/rails-tutorial/config/routes.rb +59 -0
  61. data/example/rails-tutorial/config/secrets.yml +22 -0
  62. data/example/rails-tutorial/db/seeds.rb +7 -0
  63. data/example/rails-tutorial/lib/assets/.keep +0 -0
  64. data/example/rails-tutorial/lib/tasks/.keep +0 -0
  65. data/example/rails-tutorial/log/.keep +0 -0
  66. data/example/rails-tutorial/public/404.html +67 -0
  67. data/example/rails-tutorial/public/422.html +67 -0
  68. data/example/rails-tutorial/public/500.html +66 -0
  69. data/example/rails-tutorial/public/favicon.ico +0 -0
  70. data/example/rails-tutorial/public/robots.txt +5 -0
  71. data/example/rails-tutorial/test/controllers/.keep +0 -0
  72. data/example/rails-tutorial/test/fixtures/.keep +0 -0
  73. data/example/rails-tutorial/test/helpers/.keep +0 -0
  74. data/example/rails-tutorial/test/integration/.keep +0 -0
  75. data/example/rails-tutorial/test/mailers/.keep +0 -0
  76. data/example/rails-tutorial/test/models/.keep +0 -0
  77. data/example/rails-tutorial/test/test_helper.rb +10 -0
  78. data/example/rails-tutorial/vendor/assets/javascripts/.keep +0 -0
  79. data/example/rails-tutorial/vendor/assets/stylesheets/.keep +0 -0
  80. data/example/sinatra-tutorial/.DS_Store +0 -0
  81. data/example/sinatra-tutorial/Gemfile +5 -0
  82. data/example/sinatra-tutorial/README.md +8 -0
  83. data/example/sinatra-tutorial/_comments.json +42 -0
  84. data/example/sinatra-tutorial/app/example.rb +290 -0
  85. data/example/sinatra-tutorial/app/jquery.js +5 -0
  86. data/example/sinatra-tutorial/config.ru +58 -0
  87. data/example/sinatra-tutorial/public/base.css +62 -0
  88. data/example/todos/Gemfile +11 -0
  89. data/example/todos/README.md +37 -0
  90. data/example/todos/Rakefile +8 -0
  91. data/example/todos/app/application.rb +22 -0
  92. data/example/todos/app/components/app.react.rb +61 -0
  93. data/example/todos/app/components/footer.react.rb +31 -0
  94. data/example/todos/app/components/todo_item.react.rb +46 -0
  95. data/example/todos/app/components/todo_list.react.rb +25 -0
  96. data/example/todos/app/models/todo.rb +19 -0
  97. data/example/todos/config.ru +14 -0
  98. data/example/todos/index.html.haml +16 -0
  99. data/example/todos/spec/todo_spec.rb +28 -0
  100. data/example/todos/vendor/base.css +410 -0
  101. data/example/todos/vendor/bg.png +0 -0
  102. data/example/todos/vendor/jquery.js +4 -0
  103. data/lib/generators/reactive_ruby/test_app/templates/assets/javascripts/components.rb +4 -0
  104. data/lib/generators/reactive_ruby/test_app/templates/assets/javascripts/test_application.rb +2 -0
  105. data/lib/generators/reactive_ruby/test_app/templates/boot.rb.erb +6 -0
  106. data/lib/generators/reactive_ruby/test_app/templates/script/rails +5 -0
  107. data/lib/generators/reactive_ruby/test_app/templates/test_application.rb.erb +13 -0
  108. data/lib/generators/reactive_ruby/test_app/templates/views/components/hello_world.rb +11 -0
  109. data/lib/generators/reactive_ruby/test_app/templates/views/components/todo.rb +14 -0
  110. data/lib/generators/reactive_ruby/test_app/test_app_generator.rb +105 -0
  111. data/lib/rails-helpers/top_level_rails_component.rb +54 -0
  112. data/lib/react/api.rb +127 -0
  113. data/lib/react/callbacks.rb +42 -0
  114. data/lib/react/component.rb +269 -0
  115. data/lib/react/component/api.rb +50 -0
  116. data/lib/react/component/base.rb +9 -0
  117. data/lib/react/component/class_methods.rb +190 -0
  118. data/lib/react/component/props_wrapper.rb +82 -0
  119. data/lib/react/element.rb +77 -0
  120. data/lib/react/event.rb +76 -0
  121. data/lib/react/ext/hash.rb +9 -0
  122. data/lib/react/ext/string.rb +8 -0
  123. data/lib/react/native_library.rb +53 -0
  124. data/lib/react/observable.rb +29 -0
  125. data/lib/react/rendering_context.rb +109 -0
  126. data/lib/react/state.rb +140 -0
  127. data/lib/react/top_level.rb +97 -0
  128. data/lib/react/validator.rb +136 -0
  129. data/lib/reactive-ruby/component_loader.rb +45 -0
  130. data/lib/reactive-ruby/isomorphic_helpers.rb +196 -0
  131. data/lib/reactive-ruby/rails.rb +7 -0
  132. data/lib/reactive-ruby/rails/component_mount.rb +44 -0
  133. data/lib/reactive-ruby/rails/controller_helper.rb +13 -0
  134. data/lib/reactive-ruby/rails/railtie.rb +14 -0
  135. data/lib/reactive-ruby/serializers.rb +15 -0
  136. data/lib/reactive-ruby/server_rendering/contextual_renderer.rb +42 -0
  137. data/lib/reactive-ruby/version.rb +3 -0
  138. data/lib/reactrb.rb +50 -0
  139. data/lib/sources/react-latest.js +21167 -0
  140. data/lib/sources/react-v13.js +21642 -0
  141. data/lib/sources/react-v14.js +20818 -0
  142. data/lib/sources/react-v15.js +21167 -0
  143. data/logo1.png +0 -0
  144. data/logo2.png +0 -0
  145. data/logo3.png +0 -0
  146. data/path_release_steps.md +9 -0
  147. data/reactrb.gemspec +43 -0
  148. data/spec/controller_helper_spec.rb +22 -0
  149. data/spec/index.html.erb +12 -0
  150. data/spec/react/callbacks_spec.rb +106 -0
  151. data/spec/react/component/base_spec.rb +36 -0
  152. data/spec/react/component_spec.rb +721 -0
  153. data/spec/react/dsl_spec.rb +161 -0
  154. data/spec/react/element_spec.rb +47 -0
  155. data/spec/react/event_spec.rb +24 -0
  156. data/spec/react/native_library_spec.rb +10 -0
  157. data/spec/react/observable_spec.rb +7 -0
  158. data/spec/react/param_declaration_spec.rb +286 -0
  159. data/spec/react/react_spec.rb +211 -0
  160. data/spec/react/state_spec.rb +26 -0
  161. data/spec/react/top_level_component_spec.rb +68 -0
  162. data/spec/react/tutorial/tutorial_spec.rb +35 -0
  163. data/spec/react/validator_spec.rb +128 -0
  164. data/spec/reactive-ruby/component_loader_spec.rb +68 -0
  165. data/spec/reactive-ruby/isomorphic_helpers_spec.rb +155 -0
  166. data/spec/reactive-ruby/rails/asset_pipeline_spec.rb +9 -0
  167. data/spec/reactive-ruby/rails/component_mount_spec.rb +66 -0
  168. data/spec/reactive-ruby/server_rendering/contextual_renderer_spec.rb +35 -0
  169. data/spec/spec_helper.rb +109 -0
  170. data/spec/support/react/spec_helpers.rb +57 -0
  171. data/spec/vendor/es5-shim.min.js +6 -0
  172. data/spec/vendor/jquery-2.2.4.min.js +4 -0
  173. metadata +441 -0
@@ -0,0 +1,59 @@
1
+ class ColorList
2
+
3
+ # An important part of building a reusable component is being able to pass in other components.
4
+ #
5
+ # Any component that has a block will receive all of the elements (nodes) generated in that block as children.
6
+ # These are accessed through the special "children" param which returns a enumerator.
7
+ #
8
+ # In some cases it is clearer to pass the child as a parameter. In this case the child is accessed in
9
+ # the normal way by using the named parameter method.
10
+ #
11
+ # The ColorList component demonstrates both ways to pass children to a component. ColorList takes three
12
+ # parameters - a list of color styles that will be used in sequence when rendering the list, and an optional
13
+ # header and footer that will be rendered before and after the list.
14
+ #
15
+ # Each of the children provided in the block will be displayed in order with a different color taken from the color list.
16
+
17
+ include React::Component
18
+
19
+ required_param :colors, type: [String] # note the use of typing which is not required, but useful for debugging
20
+ optional_param :header, type: React::Element # [String] means and array of strings
21
+ optional_param :footer, type: React::Element
22
+
23
+ def render
24
+ div do
25
+ # sending the render method will place the element into the render buffer
26
+ header.render if header
27
+ ul do
28
+ # children is an enumerable, so any method such as each, each_with_index, etc will work
29
+ children.each_with_index do |child, i|
30
+ ul do
31
+ # render will take a param list, and if present will cause the child to be cloned, and the
32
+ # additional params will be shallow merged with any existing params
33
+ child.render(style: {color: colors[i % colors.length]})
34
+ end
35
+ end
36
+ end
37
+ footer.render if footer
38
+ end
39
+ end
40
+
41
+ end
42
+
43
+ class Reuse
44
+
45
+ include React::Component
46
+
47
+ def render
48
+ ColorList(colors: [:red, :blue, :green], header: h1 {"I am the child header passed as a param"}) do
49
+ # we are going to pass 5 child elements to our ColorList as well as the header
50
+ "I am the first item".span # note the alternative to span { "..." }
51
+ "I am the second item".span
52
+ ColorList(colors: [:pink, :yellow]) {"I am a nested guy".span; "and so am i".span}
53
+ "I am the fourth item".span
54
+ div {"I am a div item".br; "with 2 lines"}
55
+ end
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,52 @@
1
+ require 'opal'
2
+ require 'browser/interval' # gives us wrappers on javascript methods such as setTimer and setInterval
3
+ require 'jquery'
4
+ require 'opal-jquery' # gives us a nice wrapper on jQuery which we will use mainly for HTTP calls
5
+ require "json" # json conversions
6
+ require 'reactive-ruby' # and the whole reason we are gathered here today!
7
+ require 'react-router'
8
+ require 'reactive-router'
9
+ require 'basics'
10
+ require 'reuse'
11
+ require 'items'
12
+ require 'rerendering'
13
+ require 'nodes'
14
+ require 'react_api_demo'
15
+
16
+
17
+ class Show
18
+
19
+ include React::Router
20
+
21
+ backtrace :on
22
+
23
+ routes(path: "/") do
24
+ route(path: "basics", name: "basics", handler: Basics)
25
+ route(path: "reuse", name: "reuse", handler: Reuse)
26
+ route(path: "rerendering", name: "rerendering", handler: Rerendering)
27
+ route(path: "nodes", name: "nodes", handler: Nodes)
28
+ route(path: "api_demo", name: "api_demo", handler: ReactAPIDemo)
29
+ redirect(from: "/", to: "basics")
30
+ end
31
+
32
+ def show
33
+ puts "mounted the show method"
34
+ div do
35
+ div do
36
+ link(to: "basics") { "Basics" }; br
37
+ link(to: "reuse") { "Reusable Components" }; br
38
+ link(to: "rerendering") { "Rerendering Test" }; br
39
+ link(to: "nodes") { "Saving and using rendered nodes" }; br
40
+ link(to: "api_demo") { "Low Level React API" }; br
41
+ end
42
+ route_handler
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ Document.ready? do
49
+
50
+ React.render(React.create_element(Show), Element['#content'])
51
+
52
+ end
@@ -0,0 +1,38 @@
1
+ # config.ru
2
+ require 'bundler'
3
+ Bundler.require
4
+
5
+ Opal::Processor.source_map_enabled = true
6
+
7
+ opal = Opal::Server.new {|s|
8
+ s.append_path './app'
9
+ s.main = 'example'
10
+ s.debug = true
11
+ }
12
+
13
+ map opal.source_maps.prefix do
14
+ run opal.source_maps
15
+ end rescue nil
16
+
17
+ map '/assets' do
18
+ run opal.sprockets
19
+ end
20
+
21
+ get '/*' do
22
+ example = "show"
23
+ <<-HTML
24
+ <!doctype html>
25
+ <html>
26
+ <head>
27
+ <title>Example: #{example}.rb</title>
28
+ <script src="/assets/#{example}.js"></script>
29
+ <script>#{Opal::Processor.load_asset_code(opal.sprockets, example+".js")}</script>
30
+ </head>
31
+ <body>
32
+ <div id="content"></div>
33
+ </body>
34
+ </html>
35
+ HTML
36
+ end
37
+
38
+ run Sinatra::Application
@@ -0,0 +1,17 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-journal
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ !/log/.keep
17
+ /tmp
@@ -0,0 +1,51 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'therubyracer', platforms: :ruby
4
+ gem 'react-rails'
5
+ gem 'opal-rails'
6
+
7
+ # integrates opal with sprockets etc
8
+ gem 'reactive-ruby', path: "../.."
9
+
10
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
11
+ gem 'rails', '4.2.3'
12
+ # Use sqlite3 as the database for Active Record
13
+ gem 'sqlite3'
14
+ # Use SCSS for stylesheets
15
+ gem 'sass-rails', '~> 5.0'
16
+ # Use Uglifier as compressor for JavaScript assets
17
+ gem 'uglifier', '>= 1.3.0'
18
+ # Use CoffeeScript for .coffee assets and views
19
+ gem 'coffee-rails', '~> 4.1.0'
20
+ # See https://github.com/rails/execjs#readme for more supported runtimes
21
+ # gem 'therubyracer', platforms: :ruby
22
+
23
+ # Use jquery as the JavaScript library
24
+ gem 'jquery-rails'
25
+ # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
26
+ gem 'turbolinks'
27
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
28
+ gem 'jbuilder', '~> 2.0'
29
+ # bundle exec rake doc:rails generates the API under doc/api.
30
+ gem 'sdoc', '~> 0.4.0', group: :doc
31
+
32
+ # Use ActiveModel has_secure_password
33
+ # gem 'bcrypt', '~> 3.1.7'
34
+
35
+ # Use Unicorn as the app server
36
+ # gem 'unicorn'
37
+
38
+ # Use Capistrano for deployment
39
+ # gem 'capistrano-rails', group: :development
40
+
41
+
42
+ group :development, :test do
43
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
44
+ gem 'byebug'
45
+
46
+ # Access an IRB console on exception pages or by using <%= console %> in views
47
+ gem 'web-console', '~> 2.0'
48
+
49
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
50
+ gem 'spring'
51
+ end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
File without changes
@@ -0,0 +1,15 @@
1
+ #assets/javascript/application.rb
2
+
3
+ # only put files that are browser side only.
4
+
5
+ require 'components' # this pulls in your components from the components.rb manifest file
6
+ require 'react_ujs' # this is required on the client side only and is part of the prerendering system
7
+
8
+ # require any thing else that is browser side only, typically these 4 are all you need. If you
9
+ # have client only sections of code that that do not contain requires wrap them in
10
+ # if React::IsomorphicHelpers.on_opal_client? blocks.
11
+
12
+ require 'jquery' # you need both these files to access jQuery from Opal
13
+ require 'opal-jquery' # they must be in this order, and after the components require
14
+ require 'browser/interval' # for #every, and #after methods
15
+
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,6 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+
6
+ end
@@ -0,0 +1,6 @@
1
+ # controllers/home_controller.rb
2
+ class HomeController < ApplicationController
3
+ def show
4
+ render_component "Show", say_hello_to: params[:say_hello_to] # by default render_component will use the controller name to find the appropriate component
5
+ end
6
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ require 'opal'
2
+ require 'reactive-ruby'
3
+ require_tree './components'
@@ -0,0 +1,47 @@
1
+ # app/views/components/home/show.rb
2
+
3
+ module Components
4
+
5
+ module Home
6
+
7
+ class Show
8
+
9
+ include React::Component # will create a new component named Show
10
+
11
+ optional_param :say_hello_to
12
+ backtrace :on
13
+ def render
14
+ puts "Rendering my first component!"
15
+ List(first_element: div { "bhwahaha" }) do
16
+ "hello #{'there '+say_hello_to if say_hello_to}".span # render "hello" with optional 'there ...'
17
+ "goodby".span
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+ class List
24
+
25
+ include React::Component
26
+
27
+ required_param :first_element #, type: React::Element
28
+
29
+ backtrace :on
30
+
31
+ def render
32
+ ul do
33
+ li do
34
+ first_element.render
35
+ end
36
+ children.each do |child|
37
+ li do
38
+ child.render(style: {color: :green})
39
+ child.render(style: {color: :red})
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Tutorial</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path("../spring", __FILE__)
4
+ rescue LoadError
5
+ end
6
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
7
+ require_relative '../config/boot'
8
+ require 'rails/commands'
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ begin
3
+ load File.expand_path("../spring", __FILE__)
4
+ rescue LoadError
5
+ end
6
+ require_relative '../config/boot'
7
+ require 'rake'
8
+ Rake.application.run
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+
4
+ # path to your application root.
5
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
6
+
7
+ Dir.chdir APP_ROOT do
8
+ # This script is a starting point to setup your application.
9
+ # Add necessary setup steps to this file:
10
+
11
+ puts "== Installing dependencies =="
12
+ system "gem install bundler --conservative"
13
+ system "bundle check || bundle install"
14
+
15
+ # puts "\n== Copying sample files =="
16
+ # unless File.exist?("config/database.yml")
17
+ # system "cp config/database.yml.sample config/database.yml"
18
+ # end
19
+
20
+ puts "\n== Preparing database =="
21
+ system "bin/rake db:setup"
22
+
23
+ puts "\n== Removing old logs and tempfiles =="
24
+ system "rm -f log/*"
25
+ system "rm -rf tmp/cache"
26
+
27
+ puts "\n== Restarting application server =="
28
+ system "touch tmp/restart.txt"
29
+ end