yawl_rails 0.1.0

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.
Files changed (69) hide show
  1. data/.gitignore +12 -0
  2. data/Gemfile +14 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +11 -0
  5. data/Rakefile +24 -0
  6. data/app/assets/javascripts/yawl_rails/processes.js +44 -0
  7. data/app/controllers/yawl_rails/application_controller.rb +4 -0
  8. data/app/controllers/yawl_rails/processes_controller.rb +42 -0
  9. data/app/controllers/yawl_rails/steps_controller.rb +15 -0
  10. data/app/helpers/yawl_rails/application_helper.rb +4 -0
  11. data/app/helpers/yawl_rails/processes_helper.rb +10 -0
  12. data/app/views/yawl_rails/processes/_show_inline_js.html.haml +5 -0
  13. data/app/views/yawl_rails/processes/_step_rows.html.haml +12 -0
  14. data/app/views/yawl_rails/processes/index.html.haml +19 -0
  15. data/app/views/yawl_rails/processes/show.html.haml +31 -0
  16. data/app/views/yawl_rails/steps/show.html.haml +17 -0
  17. data/bin/rails +8 -0
  18. data/config/routes.rb +11 -0
  19. data/db/migrate/20140225002136_setup_yawl.rb +11 -0
  20. data/lib/tasks/yawl_rails_tasks.rake +4 -0
  21. data/lib/yawl/process_active_record.rb +12 -0
  22. data/lib/yawl/rails.rb +2 -0
  23. data/lib/yawl_rails/engine.rb +24 -0
  24. data/lib/yawl_rails/version.rb +3 -0
  25. data/lib/yawl_rails.rb +8 -0
  26. data/spec/controllers/yawl_rails/processes_controller_spec.rb +23 -0
  27. data/spec/controllers/yawl_rails/steps_controller_spec.rb +25 -0
  28. data/spec/helpers/yawl_rails/processes_helper_spec.rb +19 -0
  29. data/spec/spec_helper.rb +23 -0
  30. data/spec/test_app/README.rdoc +28 -0
  31. data/spec/test_app/Rakefile +6 -0
  32. data/spec/test_app/app/assets/images/.keep +0 -0
  33. data/spec/test_app/app/assets/javascripts/application.js +13 -0
  34. data/spec/test_app/app/assets/stylesheets/application.css +13 -0
  35. data/spec/test_app/app/controllers/application_controller.rb +5 -0
  36. data/spec/test_app/app/controllers/concerns/.keep +0 -0
  37. data/spec/test_app/app/helpers/application_helper.rb +2 -0
  38. data/spec/test_app/app/mailers/.keep +0 -0
  39. data/spec/test_app/app/models/.keep +0 -0
  40. data/spec/test_app/app/models/concerns/.keep +0 -0
  41. data/spec/test_app/app/views/layouts/application.html.erb +14 -0
  42. data/spec/test_app/bin/bundle +3 -0
  43. data/spec/test_app/bin/rails +4 -0
  44. data/spec/test_app/bin/rake +4 -0
  45. data/spec/test_app/config/application.rb +28 -0
  46. data/spec/test_app/config/boot.rb +5 -0
  47. data/spec/test_app/config/database.yml +15 -0
  48. data/spec/test_app/config/environment.rb +5 -0
  49. data/spec/test_app/config/environments/development.rb +29 -0
  50. data/spec/test_app/config/environments/production.rb +80 -0
  51. data/spec/test_app/config/environments/test.rb +36 -0
  52. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  53. data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  54. data/spec/test_app/config/initializers/inflections.rb +16 -0
  55. data/spec/test_app/config/initializers/mime_types.rb +5 -0
  56. data/spec/test_app/config/initializers/secret_token.rb +12 -0
  57. data/spec/test_app/config/initializers/session_store.rb +3 -0
  58. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  59. data/spec/test_app/config/locales/en.yml +23 -0
  60. data/spec/test_app/config/routes.rb +4 -0
  61. data/spec/test_app/config.ru +4 -0
  62. data/spec/test_app/lib/assets/.keep +0 -0
  63. data/spec/test_app/log/.keep +0 -0
  64. data/spec/test_app/public/404.html +58 -0
  65. data/spec/test_app/public/422.html +58 -0
  66. data/spec/test_app/public/500.html +57 -0
  67. data/spec/test_app/public/favicon.ico +0 -0
  68. data/yawl_rails.gemspec +28 -0
  69. metadata +243 -0
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ spec/test_app/db/*.sqlite3
5
+ spec/test_app/db/*.sqlite3-journal
6
+ spec/test_app/log/*.log
7
+ spec/test_app/tmp/
8
+ spec/test_app/.sass-cache
9
+ *.gem
10
+ Gemfile.lock
11
+ .env
12
+ *.swp
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Declare your gem's dependencies in yawl_rails.gemspec.
4
+ # Bundler will treat runtime dependencies like base dependencies, and
5
+ # development dependencies will be added by default to the :development group.
6
+ gemspec
7
+
8
+ # Declare any dependencies that are still in development here instead of in
9
+ # your gemspec. These might include edge Rails or gems from your path or
10
+ # Git. Remember to move these dependencies to your gemspec before releasing
11
+ # your gem to rubygems.org.
12
+
13
+ # To use debugger
14
+ # gem 'debugger'
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Ricardo Chimal, Jr.
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # Yawl Rails
2
+
3
+ This is the UI and Rails integration component of [yawl](https://github.com/ricardochimal/yawl)
4
+
5
+ ## Migrations
6
+
7
+ `yawl_rails` automatically sets the schema file to be in sql format because of the `json` column used in `yawl`
8
+
9
+ ```
10
+ config.active_record.schema_format = :sql
11
+ ```
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'YawlRails'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../spec/test_app/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
24
+ task :default => "app:spec"
@@ -0,0 +1,44 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
3
+
4
+ var YawlProcess = {
5
+ url : null,
6
+
7
+ updateStepState : function() {
8
+ $.ajax(YawlProcess.url, {
9
+ success: YawlProcess.updateStepsBody
10
+ });
11
+ },
12
+
13
+ updateStepsBody : function(r, s, x) {
14
+ $("#steps tbody").html(r);
15
+ YawlProcess.updateStepProgress();
16
+
17
+ var pctCompleted = YawlProcess.stepPctCompleted();
18
+ if (pctCompleted != 100) {
19
+ setTimeout(YawlProcess.updateStepState, 5000);
20
+ }
21
+ },
22
+
23
+ updateStepProgress : function() {
24
+ var pctCompleted = YawlProcess.stepPctCompleted();
25
+ $("#process-progress").css("width", pctCompleted + "%");
26
+ if (pctCompleted == 100) {
27
+ $("#process-progress").parent().removeClass("progress-striped active");
28
+ $("#process-progress").addClass("bar-success");
29
+ }
30
+ },
31
+
32
+ stepPctCompleted : function() {
33
+ var total = $(".step").size();
34
+ var completed = $(".step-state").filter(function() { return $(this).html() == "completed" }).size();
35
+ return Math.round(completed / total * 100.0);
36
+ },
37
+
38
+ init : function() {
39
+ $(document).ready(function() {
40
+ YawlProcess.updateStepProgress();
41
+ setTimeout(YawlProcess.updateStepState, 5000);
42
+ });
43
+ }
44
+ };
@@ -0,0 +1,4 @@
1
+ module YawlRails
2
+ class ApplicationController < ::YawlRails.parent_controller.constantize
3
+ end
4
+ end
@@ -0,0 +1,42 @@
1
+ require_dependency "yawl_rails/application_controller"
2
+
3
+ module YawlRails
4
+ class ProcessesController < ApplicationController
5
+ def index
6
+ @processes = ::Yawl::Process.order(:id).reverse
7
+
8
+ respond_to do |format|
9
+ format.html
10
+ format.json { render :json => @processes }
11
+ end
12
+ end
13
+
14
+ def show
15
+ @process = ::Yawl::Process.first(:id => params[:id])
16
+
17
+ respond_to do |format|
18
+ format.html
19
+ format.json { render :json => @process.to_hash.merge(:steps => @process.steps.map(&:to_hash)) }
20
+ end
21
+ end
22
+
23
+ def restart
24
+ @process = ::Yawl::Process.first(:id => params[:id])
25
+ @process.start_first_unfinished_step
26
+
27
+ respond_to do |format|
28
+ format.html { redirect_to yawl_process_path(@process.id), :status => 303 }
29
+ format.json { render :json => @process.to_hash, :location => yawl_process_url(@process.id) }
30
+ end
31
+ end
32
+
33
+ def steps
34
+ @process = ::Yawl::Process.first(:id => params[:id])
35
+
36
+ respond_to do |format|
37
+ format.html { render :partial => "step_rows" }
38
+ format.json { render :json => @process.to_hash.merge(:steps => @process.steps.map(&:to_hash)) }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,15 @@
1
+ require_dependency "yawl_rails/application_controller"
2
+
3
+ module YawlRails
4
+ class StepsController < ApplicationController
5
+ def show
6
+ @process = ::Yawl::Process.first(:id => params[:process_id])
7
+ @step = @process.steps_dataset.first(:id => params[:id])
8
+
9
+ respond_to do |format|
10
+ format.html
11
+ format.json { render :json => @step.to_hash.merge(:attempts => @step.attempts.map(&:to_hash)) }
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,4 @@
1
+ module YawlRails
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,10 @@
1
+ require 'pp'
2
+
3
+ module YawlRails
4
+ module ProcessesHelper
5
+ def pretty_print_hash(hash)
6
+ PP.pp(hash, out='')
7
+ out
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ = javascript_include_tag "yawl_rails/processes"
2
+
3
+ :javascript
4
+ YawlProcess.url = "#{steps_yawl_process_path(@process.id)}";
5
+ YawlProcess.init();
@@ -0,0 +1,12 @@
1
+ - @process.steps.each do |step|
2
+ %tr.step{:id => "step-#{step.seq}"}
3
+ %td= link_to step.seq, yawl_process_step_path(@process.id, step.id)
4
+ %td
5
+ = step.name
6
+ - if step.state == "failed" && @process.current?
7
+ = link_to "<i class='icon-refresh icon-white'></i> Retry".html_safe, restart_yawl_process_path(@process.id), :method => :post, :class => "btn btn-mini btn-primary"
8
+ %td.step-state= step.state
9
+ %td= step.attempts.count
10
+ %td
11
+ - if step.attempts.count > 0
12
+ = "%.1fs" % step.duration
@@ -0,0 +1,19 @@
1
+ %h2 Recent Processes
2
+
3
+ - if @processes.count == 0
4
+ %p No processes yet.
5
+ - else
6
+ %table#processes.table
7
+ %thead
8
+ %tr
9
+ %th #
10
+ %th Desired State
11
+ %th State
12
+ %th Started at
13
+ %tbody
14
+ - @processes.each do |p|
15
+ %tr{:id => "process-#{p.name}"}
16
+ %td= link_to p.name, yawl_process_path(p.id)
17
+ %td= p.desired_state
18
+ %td= p.state
19
+ %td= p.created_at
@@ -0,0 +1,31 @@
1
+ %h1= "Process #{@process.name}"
2
+
3
+ %dl.dl-horizontal
4
+ %dt Request ID
5
+ %dd= @process.request_id || "-"
6
+
7
+ %dt Config
8
+ %dd
9
+ %pre
10
+ = preserve do
11
+ = pretty_print_hash(@process.config)
12
+
13
+ %dt State
14
+ %dd= @process.state
15
+
16
+
17
+ .progress.progress-striped.active
18
+ .bar#process-progress{:style => "width: 0%;"}
19
+
20
+ %table#steps.table
21
+ %thead
22
+ %tr
23
+ %th #
24
+ %th Name
25
+ %th State
26
+ %th Attempts
27
+ %th Duration
28
+ %tbody
29
+ = render 'step_rows'
30
+
31
+ = render 'show_inline_js'
@@ -0,0 +1,17 @@
1
+ %h1= link_to "Process #{@process.name}", yawl_process_path(@process.id)
2
+
3
+ %h2= "Step #{@step.seq}: #{@step.name}"
4
+
5
+ - if @step.attempts.count == 0
6
+ %p No attempts yet.
7
+ - else
8
+ - @step.attempts.reverse.each do |attempt|
9
+ %h3= "Attempt at #{attempt.started_at}"
10
+ - if attempt.completed_at
11
+ %p= "Completed at #{attempt.completed_at}"
12
+ %pre.pre-scrollable.step-output
13
+ = preserve do
14
+ - attempt.output.lines.each do |line|
15
+ = line
16
+ - else
17
+ %p Not completed yet.
data/bin/rails ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/yawl_rails/engine', __FILE__)
6
+
7
+ require 'rails/all'
8
+ require 'rails/engine/commands'
data/config/routes.rb ADDED
@@ -0,0 +1,11 @@
1
+ YawlRails::Engine.routes.draw do
2
+ scope as: 'yawl' do
3
+ resources :processes, :only => [:index, :show] do
4
+ member do
5
+ post :restart
6
+ get :steps
7
+ end
8
+ resources :steps, :only => [:show]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require "yawl/setup"
2
+
3
+ class SetupYawl < ActiveRecord::Migration
4
+ def up
5
+ Yawl::Setup.create!
6
+ end
7
+
8
+ def down
9
+ Yawl::Setup.destroy!
10
+ end
11
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :yawl_rails do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,12 @@
1
+ require "yawl/process"
2
+
3
+ module Yawl
4
+ class Process < Sequel::Model
5
+ def object
6
+ return unless values[:object_id] && object_type
7
+
8
+ klass = object_type.constantize
9
+ klass.find(values[:object_id])
10
+ end
11
+ end
12
+ end
data/lib/yawl/rails.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "yawl"
2
+ require "yawl/process_active_record"
@@ -0,0 +1,24 @@
1
+ require "haml"
2
+
3
+ module YawlRails
4
+ class Engine < ::Rails::Engine
5
+ isolate_namespace YawlRails
6
+
7
+ config.generators do |g|
8
+ g.test_framework :rspec, :fixture => false
9
+ g.template_engine :haml
10
+ end
11
+
12
+ config.active_record.schema_format = :sql
13
+
14
+ initializer "yawl_rails.append_migrations" do |app|
15
+ unless app.root.to_s.match root.to_s
16
+ app.config.paths["db/migrate"] += config.paths["db/migrate"].expanded
17
+ end
18
+ end
19
+
20
+ initializer "yawl_rails.setup_yawl" do |app|
21
+ require "yawl/rails"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,3 @@
1
+ module YawlRails
2
+ VERSION = "0.1.0"
3
+ end
data/lib/yawl_rails.rb ADDED
@@ -0,0 +1,8 @@
1
+ require "yawl_rails/engine"
2
+
3
+ module YawlRails
4
+ extend self
5
+
6
+ mattr_accessor :parent_controller
7
+ self.parent_controller = '::ApplicationController'
8
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ module YawlRails
4
+ describe ProcessesController do
5
+ describe "GET #index" do
6
+ it "renders the right template" do
7
+ get :index, use_route: :yawl_rails
8
+
9
+ expect(response).to be_success
10
+ expect(response).to render_template("index")
11
+ end
12
+
13
+ it "loads all yawl processes into @processes" do
14
+ @p1 = ::Yawl::Process.insert(:desired_state => "test1")
15
+ @p2 = ::Yawl::Process.insert(:desired_state => "test1")
16
+
17
+ get :index, use_route: :yawl_rails
18
+
19
+ assigns(:processes).map(&:id).should match_array([@p2, @p1])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ module YawlRails
4
+ describe StepsController do
5
+ before(:each) do
6
+ @process_id = Yawl::Process.insert(:desired_state => "testing")
7
+ @step_id = Yawl::Step.insert(:process_id => @process_id, :name => "step1", :seq => 1)
8
+ end
9
+
10
+ describe "GET #show" do
11
+ it "renders the right template" do
12
+ get :show, :process_id => @process_id, :id => @step_id, :use_route => :yawl_rails
13
+
14
+ expect(response).to be_success
15
+ expect(response).to render_template("show")
16
+ end
17
+
18
+ it "assigns @step" do
19
+ get :show, :process_id => @process_id, :id => @step_id, :use_route => :yawl_rails
20
+
21
+ assigns(:step).id.should eq(@step_id)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ # Specs in this file have access to a helper object that includes
4
+ # the ProcessesHelper. For example:
5
+ #
6
+ # describe ProcessesHelper do
7
+ # describe "string concat" do
8
+ # it "concats two strings with spaces" do
9
+ # expect(helper.concat_strings("this","that")).to eq("this that")
10
+ # end
11
+ # end
12
+ # end
13
+ module YawlRails
14
+ describe ProcessesHelper do
15
+ it "pretty prints the hash" do
16
+ helper.pretty_print_hash({"test" => "1235678910", "test2" => "456xxxxxxxxxxxx", "hash" => { "x" => "y", "a" => "b"}}).should eq("{\"test\"=>\"1235678910\",\n \"test2\"=>\"456xxxxxxxxxxxx\",\n \"hash\"=>{\"x\"=>\"y\", \"a\"=>\"b\"}}\n")
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,23 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ ENV['DATABASE_URL'] = 'postgres://localhost/yawl-rails-test'
3
+
4
+ require File.expand_path("../test_app/config/environment.rb", __FILE__)
5
+ require 'rspec/rails'
6
+ require 'rspec/autorun'
7
+
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+ RSpec.configure do |config|
13
+ config.mock_with :rspec
14
+ config.use_transactional_fixtures = true
15
+ config.infer_base_class_for_anonymous_controllers = false
16
+ config.order = "random"
17
+
18
+ config.around(:each) do |example|
19
+ Yawl::DB.transaction(:rollback => :always) do
20
+ example.run
21
+ end
22
+ end
23
+ 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
+ TestApp::Application.load_tasks
File without changes
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,13 @@
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 vendor/assets/stylesheets of plugins, if any, 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 top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,5 @@
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
+ end
File without changes
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>TestApp</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,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -0,0 +1,28 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ # Pick the frameworks you want:
4
+ require "active_record/railtie"
5
+ require "action_controller/railtie"
6
+ require "action_mailer/railtie"
7
+ require "sprockets/railtie"
8
+ # require "rails/test_unit/railtie"
9
+
10
+ Bundler.require(*Rails.groups)
11
+ require "yawl_rails"
12
+
13
+ module TestApp
14
+ class Application < Rails::Application
15
+ # Settings in config/environments/* take precedence over those specified here.
16
+ # Application configuration should go into files in config/initializers
17
+ # -- all .rb files in that directory are automatically loaded.
18
+
19
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
20
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
21
+ # config.time_zone = 'Central Time (US & Canada)'
22
+
23
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
24
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
25
+ # config.i18n.default_locale = :de
26
+ end
27
+ end
28
+