react_on_rails 2.0.0.beta.1 → 2.0.0.beta.2

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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.dockerignore +2 -0
  4. data/.eslintignore +7 -0
  5. data/.eslintrc +19 -0
  6. data/.gitignore +28 -0
  7. data/.jscsrc +27 -0
  8. data/.npmignore +20 -0
  9. data/.rspec +2 -0
  10. data/.rubocop.yml +70 -0
  11. data/.scss-lint.yml +205 -0
  12. data/.travis.yml +43 -0
  13. data/CHANGELOG.md +34 -0
  14. data/Dockerfile_tests +12 -0
  15. data/Gemfile +40 -0
  16. data/README.md +365 -0
  17. data/Rakefile +5 -0
  18. data/app/helpers/react_on_rails_helper.rb +215 -0
  19. data/docker-compose.yml +11 -0
  20. data/docs/LICENSE +21 -0
  21. data/docs/additional_reading/heroku_deployment.md +23 -0
  22. data/docs/additional_reading/manual_installation.md +118 -0
  23. data/docs/additional_reading/node_dependencies_and_npm.md +29 -0
  24. data/docs/additional_reading/optional_configuration.md +33 -0
  25. data/docs/additional_reading/react-and-redux.md +36 -0
  26. data/docs/additional_reading/react_router.md +45 -0
  27. data/docs/additional_reading/server_rendering_tips.md +11 -0
  28. data/docs/additional_reading/tips.md +10 -0
  29. data/docs/additional_reading/webpack.md +46 -0
  30. data/docs/code_of_conduct.md +13 -0
  31. data/docs/coding-style/linters.md +64 -0
  32. data/docs/coding-style/style.md +42 -0
  33. data/docs/contributing.md +157 -0
  34. data/docs/generator_testing.md +20 -0
  35. data/docs/releasing.md +29 -0
  36. data/lib/generators/USAGE +99 -0
  37. data/lib/generators/react_on_rails/base_generator.rb +191 -0
  38. data/lib/generators/react_on_rails/bootstrap_generator.rb +89 -0
  39. data/lib/generators/react_on_rails/dev_tests_generator.rb +39 -0
  40. data/lib/generators/react_on_rails/generator_helper.rb +50 -0
  41. data/lib/generators/react_on_rails/heroku_deployment_generator.rb +30 -0
  42. data/lib/generators/react_on_rails/install_generator.rb +99 -0
  43. data/lib/generators/react_on_rails/js_linters_generator.rb +19 -0
  44. data/lib/generators/react_on_rails/react_no_redux_generator.rb +40 -0
  45. data/lib/generators/react_on_rails/react_with_redux_generator.rb +51 -0
  46. data/lib/generators/react_on_rails/ruby_linters_generator.rb +33 -0
  47. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +4 -0
  48. data/lib/generators/react_on_rails/templates/base/base/REACT_ON_RAILS.md +16 -0
  49. data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +5 -0
  50. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +4 -0
  51. data/lib/generators/react_on_rails/templates/base/base/client/.babelrc +3 -0
  52. data/lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md +3 -0
  53. data/lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/startup/clientRegistration.jsx.tt +5 -0
  54. data/lib/generators/react_on_rails/templates/base/base/client/index.jade +15 -0
  55. data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +104 -0
  56. data/lib/generators/react_on_rails/templates/base/base/client/server.js +64 -0
  57. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.base.config.js.tt +62 -0
  58. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.hot.config.js.tt +69 -0
  59. data/lib/generators/react_on_rails/templates/base/base/client/webpack.client.rails.config.js +42 -0
  60. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +26 -0
  61. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/assets.rake.tt +26 -0
  62. data/lib/generators/react_on_rails/templates/base/base/lib/tasks/linters.rake.tt +88 -0
  63. data/lib/generators/react_on_rails/templates/base/base/package.json +31 -0
  64. data/lib/generators/react_on_rails/templates/base/server_rendering/client/app/bundles/HelloWorld/startup/serverRegistration.jsx +4 -0
  65. data/lib/generators/react_on_rails/templates/base/server_rendering/client/webpack.server.rails.config.js +39 -0
  66. data/lib/generators/react_on_rails/templates/bootstrap/app/assets/stylesheets/_bootstrap-custom.scss +63 -0
  67. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_post-bootstrap.scss +10 -0
  68. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_pre-bootstrap.scss +8 -0
  69. data/lib/generators/react_on_rails/templates/bootstrap/client/assets/stylesheets/_react-on-rails-sass-helper.scss +19 -0
  70. data/lib/generators/react_on_rails/templates/bootstrap/client/bootstrap-sass.config.js +89 -0
  71. data/lib/generators/react_on_rails/templates/dev_tests/.rspec +2 -0
  72. data/lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb +25 -0
  73. data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +57 -0
  74. data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +21 -0
  75. data/lib/generators/react_on_rails/templates/dev_tests/spec/spec_helper.rb +95 -0
  76. data/lib/generators/react_on_rails/templates/heroku_deployment/.buildpacks +2 -0
  77. data/lib/generators/react_on_rails/templates/heroku_deployment/Procfile +1 -0
  78. data/lib/generators/react_on_rails/templates/heroku_deployment/config/puma.rb +15 -0
  79. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintignore +1 -0
  80. data/lib/generators/react_on_rails/templates/js_linters/client/.eslintrc +48 -0
  81. data/lib/generators/react_on_rails/templates/js_linters/client/.jscsrc +18 -0
  82. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +39 -0
  83. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +33 -0
  84. data/lib/generators/react_on_rails/templates/no_redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +8 -0
  85. data/lib/generators/react_on_rails/templates/no_redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +8 -0
  86. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/actions/helloWorldActionCreators.jsx +8 -0
  87. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/components/HelloWorldWidget.jsx +48 -0
  88. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/constants/helloWorldConstants.jsx +8 -0
  89. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/containers/HelloWorld.jsx +43 -0
  90. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/helloWorldReducer.jsx +19 -0
  91. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/reducers/index.jsx +14 -0
  92. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/startup/HelloWorldAppClient.jsx.tt +19 -0
  93. data/lib/generators/react_on_rails/templates/redux/base/client/app/bundles/HelloWorld/store/helloWorldStore.jsx +35 -0
  94. data/lib/generators/react_on_rails/templates/redux/base/client/app/lib/middlewares/loggerMiddleware.js +20 -0
  95. data/lib/generators/react_on_rails/templates/redux/server_rendering/client/app/bundles/HelloWorld/startup/HelloWorldAppServer.jsx +19 -0
  96. data/lib/generators/react_on_rails/templates/ruby_linters/.rubocop.yml +26 -0
  97. data/lib/generators/react_on_rails/templates/ruby_linters/.scss-lint.yml +205 -0
  98. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/brakeman.rake +17 -0
  99. data/lib/generators/react_on_rails/templates/ruby_linters/lib/tasks/ci.rake +33 -0
  100. data/lib/generators/react_on_rails/templates/ruby_linters/ruby-lint.yml +20 -0
  101. data/lib/react_on_rails.rb +6 -0
  102. data/lib/react_on_rails/configuration.rb +60 -0
  103. data/lib/react_on_rails/engine.rb +7 -0
  104. data/lib/react_on_rails/prerender_error.rb +31 -0
  105. data/lib/react_on_rails/server_rendering_pool.rb +110 -0
  106. data/lib/react_on_rails/version.rb +3 -0
  107. data/package.json +76 -0
  108. data/rakelib/docker.rake +33 -0
  109. data/rakelib/dummy_apps.rake +20 -0
  110. data/rakelib/example_type.rb +160 -0
  111. data/rakelib/examples.rake +103 -0
  112. data/rakelib/examples_config.yml +19 -0
  113. data/rakelib/lint.rake +37 -0
  114. data/rakelib/node_package.rake +11 -0
  115. data/rakelib/run_rspec.rake +65 -0
  116. data/rakelib/task_helpers.rb +44 -0
  117. data/react_on_rails.gemspec +31 -0
  118. data/ruby-lint.yml +24 -0
  119. metadata +119 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25ed6f310f38fc595150b0fc8301ed7e2b27a7c2
4
- data.tar.gz: 5b10153ddd10c2764ced906506b7c1eaf2b1ab7a
3
+ metadata.gz: e31774c6bd02e65296e93fbfbefbf45ffcbe2a9b
4
+ data.tar.gz: 7734b39bc33436dbbb9fbe611be63e32320cfbd5
5
5
  SHA512:
6
- metadata.gz: 439bc6ad0d6276c62450d7b19401519cfa40cbcfa1204a026927bfe8c0c048f9bdb03c0070ef08958f3d68bd50e19fc85703bd51282e46f6aef464788988cc6a
7
- data.tar.gz: 615e59ff463bde38d55f37446e9a8853e266a3f47655cd0c49fbe5a4eec7c78bb4b850814dc889e48652f281a8efded1c71cbd61b549064498c6c7c3b4009d8c
6
+ metadata.gz: 5e36562a5e9bb7aca5cdbba893d94e1fcea207a31dbd67e2fa2d0a3af8ef23c8a40820839d15b6a3edfb4b11f2e869b083752f62fdd81638cee865d828eb9f74
7
+ data.tar.gz: b19b18901a1c8e08a880b72a88acebb5dfcaf46b8300133228457565da75c1fc8590012f734e06d021400d42d1841daf05458edc33c2977e1ae9a1ea7a12cd39
@@ -0,0 +1 @@
1
+ service_name: travis-ci
@@ -0,0 +1,2 @@
1
+ coverage/
2
+ docker-compose.yml
@@ -0,0 +1,7 @@
1
+ node_modules
2
+ coverage
3
+ spec/react_on_rails/dummy-for-generators
4
+ spec/dummy
5
+ node_package/lib/
6
+ node_package/tests/node_modules
7
+ node_package/webpack.config.js
@@ -0,0 +1,19 @@
1
+ ---
2
+ parser: babel-eslint
3
+
4
+ extends: eslint-config-airbnb
5
+
6
+ plugins:
7
+ - react
8
+
9
+ globals:
10
+ __DEBUG_SERVER_ERRORS__: true
11
+ __SERVER_ERRORS__: true
12
+
13
+ env:
14
+ browser: true
15
+ node: true
16
+ mocha: true
17
+
18
+ rules:
19
+ no-console: 0
@@ -0,0 +1,28 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.gem
11
+ /vendor/
12
+
13
+ /spec/dummy/client/node_modules
14
+ /spec/dummy/app/assets/javascripts/generated/
15
+ /spec/dummy/coverage/
16
+ /spec/react_on_rails/dummy-for-generators/
17
+
18
+ # RVM
19
+ .ruby-version
20
+ .ruby-gemset
21
+
22
+ node_modules
23
+ /examples
24
+
25
+ /node_package/lib
26
+
27
+ npm-debug.*
28
+ spec/dummy/client/npm-debug.log.*
data/.jscsrc ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "preset": "airbnb",
3
+ "fileExtensions": [
4
+ ".js",
5
+ ".jsx"
6
+ ],
7
+ "excludeFiles": [
8
+ "**/build/**",
9
+ "**/node_modules/**",
10
+ "**/generated/**",
11
+ "**/docs/**",
12
+ "**/tmp/**",
13
+ "**/sample_generated/**",
14
+ "**/coverage/**",
15
+ "**/vendor/**",
16
+ "**/dummy-for-generators/**",
17
+ "**/dummy/**",
18
+ "**/node_package/lib/**"
19
+ ],
20
+ "esprima": "babel-jscs",
21
+ "validateQuoteMarks": {
22
+ "mark": "'",
23
+ "escape": true,
24
+ "ignoreJSX": true
25
+ },
26
+ "requireTrailingComma": false
27
+ }
@@ -0,0 +1,20 @@
1
+ CHANGELOG.md
2
+ Gemfile
3
+ README.md
4
+ app
5
+ coverage
6
+ docs
7
+ examples
8
+ node_modules
9
+ react_on_rails.gemspec
10
+ Dockerfile_tests
11
+ Gemfile.lock
12
+ Rakefile
13
+ bin
14
+ docker-compose.yml
15
+ etc
16
+ lib
17
+ rakelib
18
+ ruby-lint.yml
19
+ spec
20
+ node_modules
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,70 @@
1
+ # This is the configuration used to check the rubocop source code.
2
+ # Check out: https://github.com/bbatsov/rubocop
3
+
4
+ AllCops:
5
+ Include:
6
+ - '**/Rakefile'
7
+ - '**/config.ru'
8
+ Exclude:
9
+ - 'vendor/**/*'
10
+ - 'spec/fixtures/**/*'
11
+ - 'node_modules/**/*'
12
+ - 'coverage/**/*'
13
+ - 'db/**/*'
14
+ - 'db/schema.rb'
15
+ - 'db/seeds.rb'
16
+ - 'client/node_modules/**/*'
17
+ - 'bin/**/*'
18
+ - !ruby/regexp /old_and_unused\.rb$/
19
+ - 'spec/react_on_rails/dummy-for-generators/**/*'
20
+ - 'spec/dummy/bin/**/*'
21
+ - 'examples/**/*'
22
+
23
+ Metrics/LineLength:
24
+ Max: 120
25
+
26
+ Style/StringLiterals:
27
+ EnforcedStyle: double_quotes
28
+
29
+ Style/Documentation:
30
+ Enabled: false
31
+
32
+ Lint/AssignmentInCondition:
33
+ Exclude:
34
+ - 'spec/dummy/bin/spring'
35
+
36
+ # Offense count: 2
37
+ Lint/HandleExceptions:
38
+ Exclude:
39
+ - 'spec/dummy/bin/rails'
40
+ - 'spec/dummy/bin/rake'
41
+
42
+ # Offense count: 1
43
+ Metrics/AbcSize:
44
+ Max: 23
45
+
46
+ # Offense count: 1
47
+ # Configuration parameters: CountComments.
48
+ Metrics/ClassLength:
49
+ Max: 114
50
+
51
+ Metrics/ParameterLists:
52
+ Max: 5
53
+ CountKeywordArgs: false
54
+
55
+ # Offense count: 9
56
+ # Configuration parameters: CountComments.
57
+ Metrics/MethodLength:
58
+ Max: 38
59
+
60
+ # Offense count: 1
61
+ # Configuration parameters: CountComments.
62
+ Metrics/ModuleLength:
63
+ Max: 150
64
+
65
+ # Offense count: 3
66
+ # Configuration parameters: AllowedVariables.
67
+ Style/GlobalVars:
68
+ Exclude:
69
+ - 'spec/dummy/config/environments/development.rb'
70
+
@@ -0,0 +1,205 @@
1
+ # See http://sass-guidelin.es/#zeros
2
+
3
+ scss_files:
4
+ - 'spec/dummy/app/assets/stylesheets/**/*.scss'
5
+ exclude:
6
+ - 'spec/dummy/app/assets/stylesheets/application.css'
7
+ linters:
8
+ # BangFormat:
9
+ # enabled: true
10
+ # space_before_bang: true
11
+ # space_after_bang: false
12
+ #
13
+ # BorderZero:
14
+ # enabled: true
15
+ # convention: zero # or `none`
16
+ #
17
+ ColorKeyword:
18
+ enabled: false
19
+ ColorVariable:
20
+ enabled: false
21
+ #
22
+ # Comment:
23
+ # enabled: true
24
+ #
25
+ # DebugStatement:
26
+ # enabled: true
27
+ #
28
+ # DeclarationOrder:
29
+ # enabled: true
30
+ #
31
+ # DuplicateProperty:
32
+ # enabled: true
33
+ #
34
+ # ElsePlacement:
35
+ # enabled: true
36
+ # style: same_line # or 'new_line'
37
+ #
38
+ # EmptyLineBetweenBlocks:
39
+ # enabled: true
40
+ # ignore_single_line_blocks: true
41
+ #
42
+ # EmptyRule:
43
+ # enabled: true
44
+ #
45
+ # FinalNewline:
46
+ # enabled: true
47
+ # present: true
48
+ #
49
+ HexLength:
50
+ enabled: true
51
+ style: long
52
+
53
+ HexNotation:
54
+ enabled: true
55
+ style: uppercase
56
+ #
57
+ # HexValidation:
58
+ # enabled: true
59
+ #
60
+ IdSelector:
61
+ enabled: true
62
+ #
63
+ # ImportantRule:
64
+ # enabled: true
65
+ #
66
+ # ImportPath:
67
+ # enabled: true
68
+ # leading_underscore: false
69
+ # filename_extension: false
70
+ #
71
+ # Indentation:
72
+ # enabled: true
73
+ # allow_non_nested_indentation: false
74
+ # character: space # or 'tab'
75
+ # width: 2
76
+ #
77
+ LeadingZero:
78
+ enabled: true
79
+ style: include_zero
80
+ #
81
+ # MergeableSelector:
82
+ # enabled: true
83
+ # force_nesting: true
84
+ #
85
+ # NameFormat:
86
+ # enabled: true
87
+ # allow_leading_underscore: true
88
+ # convention: hyphenated_lowercase # or 'camel_case', or 'snake_case', or a regex pattern
89
+ #
90
+ # NestingDepth:
91
+ # enabled: true
92
+ # max_depth: 3
93
+ #
94
+ # PlaceholderInExtend:
95
+ # enabled: true
96
+ #
97
+ # PropertyCount:
98
+ # enabled: false
99
+ # include_nested: false
100
+ # max_properties: 10
101
+ #
102
+ # PropertyUnits:
103
+ # enabled: true
104
+ # global: [
105
+ # 'ch', 'em', 'ex', 'rem', # Font-relative lengths
106
+ # 'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths
107
+ # 'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths
108
+ # 'deg', 'grad', 'rad', 'turn', # Angle
109
+ # 'ms', 's', # Duration
110
+ # 'Hz', 'kHz', # Frequency
111
+ # 'dpi', 'dpcm', 'dppx', # Resolution
112
+ # '%', # Other
113
+ # ]
114
+ # properties: {}
115
+ #
116
+ # PropertySortOrder:
117
+ # enabled: true
118
+ # ignore_unspecified: false
119
+ # separate_groups: false
120
+ #
121
+ # PropertySpelling:
122
+ # enabled: true
123
+ # extra_properties: []
124
+ #
125
+ # QualifyingElement:
126
+ # enabled: true
127
+ # allow_element_with_attribute: false
128
+ # allow_element_with_class: false
129
+ # allow_element_with_id: false
130
+ #
131
+ # SelectorDepth:
132
+ # enabled: true
133
+ # max_depth: 3
134
+ #
135
+ # SelectorFormat:
136
+ # enabled: true
137
+ # convention: hyphenated_lowercase # or 'strict_BEM', or 'hyphenated_BEM', or 'snake_case', or 'camel_case', or a regex pattern
138
+ #
139
+ # Shorthand:
140
+ # enabled: true
141
+ # allowed_shorthands: [1, 2, 3]
142
+ #
143
+ # SingleLinePerProperty:
144
+ # enabled: true
145
+ # allow_single_line_rule_sets: true
146
+ #
147
+ # SingleLinePerSelector:
148
+ # enabled: true
149
+ #
150
+ # SpaceAfterComma:
151
+ # enabled: true
152
+ #
153
+ # SpaceAfterPropertyColon:
154
+ # enabled: true
155
+ # style: one_space # or 'no_space', or 'at_least_one_space', or 'aligned'
156
+ #
157
+ # SpaceAfterPropertyName:
158
+ # enabled: true
159
+ #
160
+ # SpaceBeforeBrace:
161
+ # enabled: true
162
+ # style: space # or 'new_line'
163
+ # allow_single_line_padding: false
164
+ #
165
+ # SpaceBetweenParens:
166
+ # enabled: true
167
+ # spaces: 0
168
+ #
169
+ # StringQuotes:
170
+ # enabled: true
171
+ # style: single_quotes # or double_quotes
172
+ #
173
+ # TrailingSemicolon:
174
+ # enabled: true
175
+ #
176
+ # TrailingZero:
177
+ # enabled: false
178
+ #
179
+ # UnnecessaryMantissa:
180
+ # enabled: true
181
+ #
182
+ # UnnecessaryParentReference:
183
+ # enabled: true
184
+ #
185
+ # UrlFormat:
186
+ # enabled: true
187
+ #
188
+ # UrlQuotes:
189
+ # enabled: true
190
+ #
191
+ # VariableForProperty:
192
+ # enabled: false
193
+ # properties: []
194
+ #
195
+ # VendorPrefix:
196
+ # enabled: true
197
+ # identifier_list: base
198
+ # additional_identifiers: []
199
+ # excluded_identifiers: []
200
+ #
201
+ # ZeroUnit:
202
+ # enabled: true
203
+ #
204
+ # Compass::*:
205
+ # enabled: false
@@ -0,0 +1,43 @@
1
+ sudo: required
2
+
3
+ language: ruby
4
+
5
+ rvm:
6
+ - 2.2.3
7
+
8
+ services:
9
+ - docker
10
+
11
+ gemfile:
12
+ - spec/dummy/Gemfile
13
+
14
+ env:
15
+ - export RAILS_ENV=test
16
+ - export DRIVER=selenium_chrome
17
+
18
+ before_install:
19
+ - sudo apt-get update
20
+ - curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > docker-compose
21
+ - chmod +x docker-compose
22
+ - sudo mv docker-compose /usr/local/bin
23
+ - sudo apt-get install -y xvfb
24
+
25
+ install:
26
+ - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install 4.2.0
27
+ - npm install -g npm
28
+ - bundle install
29
+ - npm install
30
+ - rake dummy_apps
31
+ - rake examples
32
+ - docker-compose up lint
33
+
34
+ before_script:
35
+ - "export DISPLAY=:99"
36
+ - Xvfb :99 -ac -screen scn 1600x1200x16 &
37
+
38
+ script:
39
+ - rake
40
+
41
+ notifications:
42
+ slack:
43
+ secure: LfcUk4AJ4vAxWwRIyw4tFh8QNbYefMwfG/oLfsN3CdRMWMOtCOHR1GGsRhAOlfVVJ/FvHqVqWj5gK7z7CaO5Uvl7rD3/zJ8QzExKx/iH9yWj55iIPuKLzwFNnBwRpFW/cqyU2lFPPRxGD50BUn3c+qybkuSqtKZ6qtTowwqlxLa5iyM3N95aZp7MEIKCP7cPcnHfLbJyP8wBpotp/rtw62eXM2HIRJJwgjcp+n+My7VFR9DnBXNFf6R91aZHM4U4cHHDbu15HFtH8honVrzK1JQdyqMNHga+j04dFuaS7z9Q369/hsELMOBp/227+Pz7ZRfWZFK4UASguOvyeX7RmGTRpTuWLm1XJeUzfsPZVROecaSVQBve+U7F12yKqilt97QlvRXn2EGyBILqvxtFNNR4S9kgAf72/6EFgiM1TKq7i9zy6lVOnagU2+7amq7UeopX1uoFsUfNKMR7YbgV1WjF0IK95UP0b0/7ZOJlPYgi5zzkQi129qAFWSMmxGk+ZpsttHh/tjJtvAh0A3mHq/zb5w4ub/MbSyZqeDUNgGj72QArOWUFSAStQT1ybsVLeDoKPgOvVq7OV1D64rpcHjBXcqOCit8tDZ+TqkFhcYJo2cITSaqE4zJXn+4F5s7So5O8CyfKYQq+kFJCooYGmfgTUckJpGl7eIvKmL4TN9Q=