rugular 0.6.0 → 0.6.6
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 +4 -4
- data/.rubocop.yml +11 -6
- data/README.md +55 -12
- data/features/new.feature +8 -0
- data/features/support/setup.rb +4 -0
- data/lib/rugular/tasks/build.rb +11 -1
- data/lib/rugular/tasks/dependencies.rb +8 -1
- data/lib/rugular/tasks/generate.rb +8 -2
- data/lib/rugular/tasks/helpers/app_checker.rb +11 -7
- data/lib/rugular/tasks/helpers/backend_url_injector.rb +66 -0
- data/lib/rugular/tasks/new.rb +24 -10
- data/lib/rugular/tasks/server/Guardfile +1 -1
- data/lib/rugular/tasks/server/guards/rugular.rb +4 -2
- data/lib/rugular/tasks/server/guards/rugular_vendor_and_bower_components.rb +15 -1
- data/lib/rugular/tasks/server.rb +7 -1
- data/lib/rugular/tasks/tmux/tmuxinator.yml +0 -2
- data/lib/rugular/tasks/tmux.rb +9 -3
- data/lib/rugular/templates/new/.application.sass +4 -0
- data/lib/rugular/templates/new/.gitignore +1 -0
- data/lib/rugular/templates/new/config.yaml +13 -0
- data/lib/rugular/templates/new/src/app/backend.contsant.coffee +8 -0
- data/lib/rugular/templates/new/vendor_and_bower_components.yaml +3 -1
- data/lib/rugular/templates/new_erb/bower.json.erb +1 -4
- data/lib/rugular/templates/new_erb/src/index.haml.erb +8 -0
- data/lib/rugular/version.rb +1 -1
- data/rugular.gemspec +8 -5
- metadata +71 -26
- data/lib/rugular/templates/new/src/application.sass +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d071512d3ab5d3a4c2dc9feb577a2bf915cdc7e
|
4
|
+
data.tar.gz: 6d7ade01d611534225776c420ab1135317ef1e2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05717e162826c18155fe5866a61e6e40cfb2284bdd147f37047e71ff973f0f6daa28b56c2f9278186b62d2b9404f0ed1a85affc4ba27742f4191f65861bda03f
|
7
|
+
data.tar.gz: 2c1327afd4319480e045028c4b8749c3ed89add1def4d3a849ad7d4d2e1ee4f601724d03f4e7bc0a1e53f96a0084397fa9fd7a1cb8a11d948ccb8f5786a9bdf9
|
data/.rubocop.yml
CHANGED
@@ -18,9 +18,10 @@ Metrics/ParameterLists:
|
|
18
18
|
|
19
19
|
Style/CollectionMethods:
|
20
20
|
PreferredMethods:
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
collect: 'map'
|
22
|
+
collect!: 'map!'
|
23
|
+
inject: 'reduce'
|
24
|
+
detect: 'find'
|
24
25
|
find_all: 'select'
|
25
26
|
|
26
27
|
Style/Documentation:
|
@@ -39,10 +40,14 @@ Style/RaiseArgs:
|
|
39
40
|
EnforcedStyle: compact
|
40
41
|
|
41
42
|
Style/SpaceInsideHashLiteralBraces:
|
42
|
-
EnforcedStyle:
|
43
|
+
EnforcedStyle: space
|
43
44
|
|
44
45
|
Style/StringLiterals:
|
45
|
-
EnforcedStyle:
|
46
|
+
EnforcedStyle: single_quotes
|
47
|
+
|
48
|
+
Style/TrailingBlankLines:
|
49
|
+
Enabled: false
|
46
50
|
|
47
51
|
Style/TrailingComma:
|
48
|
-
EnforcedStyleForMultiline: '
|
52
|
+
EnforcedStyleForMultiline: 'no_comma'
|
53
|
+
|
data/README.md
CHANGED
@@ -25,6 +25,11 @@ CoffeeScript with generators to create template files.
|
|
25
25
|
gem install rugular
|
26
26
|
```
|
27
27
|
|
28
|
+
### Install dependencies
|
29
|
+
|
30
|
+
Download all necessary dependencies by running the ``rugular dependencies``
|
31
|
+
task. This will download packages from both ``npm`` and ``bower``.
|
32
|
+
|
28
33
|
## Start a new project
|
29
34
|
|
30
35
|
```bash
|
@@ -60,7 +65,7 @@ A new Rugular project contains the following folders and files:
|
|
60
65
|
|
61
66
|
| Folder/File Name | Description |
|
62
67
|
| --- | --- |
|
63
|
-
| .application.sass | A manifest sass file for development purposes
|
68
|
+
| .application.sass | A manifest sass file for development purposes. [Declare vendor sass if needed, the rest is included for you](#writing-sass-and-haml). |
|
64
69
|
| .gitignore | Many of the files and folders here are not needed for source control, when deploying an application, please use the ``rugular build`` command described below |
|
65
70
|
| .tmp | A temporary folder used for storing compiled Haml, Sass, and Coffeescript file, you do not need to edit any files in this folder. |
|
66
71
|
| bower_components | A folder used by bower to install packages. |
|
@@ -84,8 +89,7 @@ bower_components or other 3rd party vendor files are declared in the
|
|
84
89
|
Code in the src folder are written in Coffeescript, Haml and Sass and designed
|
85
90
|
to follow [Google's Best Practices for an Angular App
|
86
91
|
Structure](https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub).
|
87
|
-
|
88
|
-
folder and an ``src/components`` folder.
|
92
|
+
Rugular initially creates a ``src/app`` folder for logic pertaining to urls and an ``src/components`` folder for abstracted web components, written as Angular directives.
|
89
93
|
|
90
94
|
### The src/app folder
|
91
95
|
|
@@ -97,13 +101,12 @@ Any modules that are created within one level of nesting in the ``src/app``
|
|
97
101
|
folder (e.g. ``src/app/dashboard/dashboard.module.coffee``) are to be included
|
98
102
|
in the ``app.module.coffee`` declaration.
|
99
103
|
|
100
|
-
The ``src/app/app.routes.coffee`` file declares a base route for the
|
101
|
-
application from which all other routes are derived from
|
102
|
-
|
104
|
+
The ``src/app/app.routes.coffee`` file declares a base route, ``root`` for the
|
105
|
+
application from which all other routes are derived from; all other routes
|
106
|
+
should be prepended with ``'root.'``.
|
103
107
|
|
104
|
-
|
105
|
-
|
106
|
-
application. If you have directives such as a ``navbar`` or ``footer``
|
108
|
+
The``src/app/app.haml`` file serves as an application layout for the rest of
|
109
|
+
your application. If you have directives such as a ``navbar`` or ``footer``
|
107
110
|
directive, it is advised to add these directives to this ``haml`` file.
|
108
111
|
|
109
112
|
### The src/components folder
|
@@ -117,7 +120,39 @@ contain one or more of the following:
|
|
117
120
|
|
118
121
|
These files can also live in the ``app`` directory. It is recommended to put
|
119
122
|
abstract modules that can be used in other projects in the ``src/components``
|
120
|
-
directory.
|
123
|
+
directory.
|
124
|
+
|
125
|
+
### Server Side calls
|
126
|
+
|
127
|
+
Rugular apps are intended to interface with one main API. The base URL of that
|
128
|
+
API can be configured in the ``config.yaml`` file for both the ``rugular
|
129
|
+
server`` command for development, and the ``rugular build`` command for
|
130
|
+
production. The ``config.yaml`` file contains defaults for ``localhost:3000``
|
131
|
+
for a local server and a ``RUGULAR_SERVER`` environment variable that can be
|
132
|
+
injected during a deployment script, e.g. a Dockerfile.
|
133
|
+
|
134
|
+
### Writing Sass and Haml
|
135
|
+
|
136
|
+
Rugular ships with Thoughtbot's [Bourbon, Neat, and
|
137
|
+
Bitters](http://bourbon.io/). These are included in the ``src/vendor``
|
138
|
+
directory and included in ``.application.sass``, the manifest sass file that
|
139
|
+
will be compiled in both the ``.tmp`` directory and ``dist`` directory for the
|
140
|
+
``rugular server`` and ``rugular build`` commands separately.
|
141
|
+
|
142
|
+
All files in the ``src`` directory are included via [the sass-globbing
|
143
|
+
gem](https://github.com/chriseppstein/sass-globbing). It is recommended that
|
144
|
+
each sass file start with a top level class so that the sass files can be
|
145
|
+
included irrespective of their order. For example a sass file for a header
|
146
|
+
directive should look like:
|
147
|
+
|
148
|
+
```sass
|
149
|
+
.header
|
150
|
+
> h1
|
151
|
+
color: red
|
152
|
+
```
|
153
|
+
|
154
|
+
Haml files should also start with a top-level class that has the same name
|
155
|
+
of its folder.
|
121
156
|
|
122
157
|
## Rugular Generators
|
123
158
|
|
@@ -197,6 +232,9 @@ src/app/navbar.haml
|
|
197
232
|
src/app/navbar.module.coffee
|
198
233
|
```
|
199
234
|
|
235
|
+
> This will be re-written as a component in Angular 2.0.
|
236
|
+
> (and it will be awesome!)
|
237
|
+
|
200
238
|
#### Create a Factory
|
201
239
|
|
202
240
|
A [factory](https://docs.angularjs.org/guide/services) is an angular service
|
@@ -278,7 +316,7 @@ rugular ci
|
|
278
316
|
|
279
317
|
## Building the app
|
280
318
|
|
281
|
-
To build a minified version of your app in the
|
319
|
+
To build a minified version of your app in the ``dist`` folder execute:
|
282
320
|
|
283
321
|
```bash
|
284
322
|
rugular build
|
@@ -292,9 +330,14 @@ This will create the following files:
|
|
292
330
|
* application.js (a minified version of the coffee files in the src folder)
|
293
331
|
* vendor.js (a minified version of bower_component and vendor files)
|
294
332
|
|
295
|
-
|
296
333
|
## Roadmap
|
297
334
|
|
335
|
+
Features coming soon:
|
336
|
+
|
337
|
+
* Abstracting bower components from a folder and its subfolders
|
338
|
+
* Fingerprinting dist asset files for caching
|
339
|
+
* Nginx based docker container for deploying apps
|
340
|
+
|
298
341
|
As soon as it reaches a stable release:
|
299
342
|
|
300
343
|
* ``angular-ui-router`` will be replaced by the ``router`` re-write by the
|
data/features/new.feature
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
@increase_wait_time
|
1
2
|
Feature: Rugular CLI
|
2
3
|
In order to generate initial files
|
3
4
|
As a user of the rugular framework
|
@@ -26,6 +27,13 @@ Feature: Rugular CLI
|
|
26
27
|
"""
|
27
28
|
%title my-app
|
28
29
|
"""
|
30
|
+
And the file "my-app/.application.sass" should contain:
|
31
|
+
"""
|
32
|
+
@import "vendor/bourbon/bourbon"
|
33
|
+
"""
|
34
|
+
And a directory named "my-app/vendor/bourbon" should exist
|
35
|
+
And a directory named "my-app/vendor/neat" should exist
|
36
|
+
And a directory named "my-app/vendor/base" should exist
|
29
37
|
And a directory named "my-app/src/components" should exist
|
30
38
|
And the output should contain "Thank you for installing Rugular"
|
31
39
|
|
data/features/support/setup.rb
CHANGED
data/lib/rugular/tasks/build.rb
CHANGED
@@ -10,7 +10,9 @@ module Rugular
|
|
10
10
|
|
11
11
|
desc('Creates a minified, compressed version in the dist folder')
|
12
12
|
|
13
|
-
|
13
|
+
def check_for_rugular_directory
|
14
|
+
Rugular::AppChecker.check_rugular!(self.name, new.destination_root)
|
15
|
+
end
|
14
16
|
|
15
17
|
def create_dist_folder
|
16
18
|
FileUtils.mkdir_p('./dist') unless File.directory? './dist'
|
@@ -58,6 +60,14 @@ module Rugular
|
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
63
|
+
def inject_backend_urls
|
64
|
+
Rugular::BackendURLInjector.inject_urls(
|
65
|
+
config_file: 'config.yaml',
|
66
|
+
constant_file: 'dist/application.js',
|
67
|
+
environment: :production
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
61
71
|
def add_template_application_sass_file
|
62
72
|
FileUtils.cp(
|
63
73
|
"#{lib_directory}/templates/server/application.sass",
|
@@ -6,7 +6,13 @@ module Rugular
|
|
6
6
|
|
7
7
|
desc('Installs dependencies (bundle, bower and npm)')
|
8
8
|
|
9
|
-
|
9
|
+
def self.exit_on_failue?; true end
|
10
|
+
def check_for_rugular_directory
|
11
|
+
::Rugular::AppChecker.check_for_rugular_directory(
|
12
|
+
task_name: self.class.name,
|
13
|
+
root_directory: destination_root
|
14
|
+
)
|
15
|
+
end
|
10
16
|
|
11
17
|
def bundle
|
12
18
|
puts 'Installing Ruby gems'
|
@@ -19,6 +25,7 @@ module Rugular
|
|
19
25
|
end
|
20
26
|
|
21
27
|
def npm_install
|
28
|
+
puts 'Installing node packages'
|
22
29
|
system('npm install')
|
23
30
|
end
|
24
31
|
|
@@ -4,8 +4,6 @@ module Rugular
|
|
4
4
|
class Generate < Thor
|
5
5
|
include Thor::Actions
|
6
6
|
|
7
|
-
Rugular::AppChecker.check_rugular!(self.name, new.destination_root)
|
8
|
-
|
9
7
|
desc(
|
10
8
|
'generate <angular_service> <name>',
|
11
9
|
'generates an angular service'
|
@@ -24,6 +22,14 @@ module Rugular
|
|
24
22
|
command will also create an angular module if one does not already exist.
|
25
23
|
LONGDESC
|
26
24
|
|
25
|
+
def check_for_rugular_directory
|
26
|
+
::Rugular::AppChecker.check_for_rugular_directory(
|
27
|
+
task_name: self.class.name,
|
28
|
+
root_directory: destination_root
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
|
27
33
|
register(
|
28
34
|
Rugular::Route,
|
29
35
|
'route',
|
@@ -2,8 +2,11 @@ module Rugular
|
|
2
2
|
class AppChecker
|
3
3
|
include Thor::Shell
|
4
4
|
|
5
|
-
def self.
|
6
|
-
new(
|
5
|
+
def self.check_for_rugular_directory(task_name:, root_directory:)
|
6
|
+
new(
|
7
|
+
task_name: task_name,
|
8
|
+
root_directory: root_directory
|
9
|
+
).check_for_rugular_directory
|
7
10
|
end
|
8
11
|
|
9
12
|
def initialize(task_name:, root_directory:)
|
@@ -11,8 +14,10 @@ module Rugular
|
|
11
14
|
@root_directory = root_directory
|
12
15
|
end
|
13
16
|
|
14
|
-
def
|
15
|
-
|
17
|
+
def check_for_rugular_directory
|
18
|
+
fail(rugular_app_message) unless rugular_app?
|
19
|
+
|
20
|
+
return true
|
16
21
|
end
|
17
22
|
|
18
23
|
private
|
@@ -20,16 +25,15 @@ module Rugular
|
|
20
25
|
attr_reader :task_name, :root_directory
|
21
26
|
|
22
27
|
def rugular_app_message
|
23
|
-
"#{task_name}
|
28
|
+
"#{task_name} can only be ran in the root folder of a Rugular app"
|
24
29
|
end
|
25
30
|
|
26
31
|
def rugular_app?
|
27
32
|
[
|
28
33
|
'bower.json',
|
29
34
|
'package.json',
|
30
|
-
'src/index.haml',
|
31
35
|
'Gemfile',
|
32
|
-
'.
|
36
|
+
'src/index.haml'
|
33
37
|
].each do |file_name|
|
34
38
|
destination_file_name = root_directory + '/' + file_name
|
35
39
|
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Rugular
|
2
|
+
class BackendURLInjector
|
3
|
+
include Thor::Shell
|
4
|
+
|
5
|
+
def self.inject_urls(config_file:, environment:)
|
6
|
+
new(
|
7
|
+
config_file: config_file,
|
8
|
+
constant_file: constant_file,
|
9
|
+
environment: environment
|
10
|
+
).inject_urls
|
11
|
+
end
|
12
|
+
|
13
|
+
def new(config_file:, constant_file:, environment:)
|
14
|
+
@config_file = config_file
|
15
|
+
@constant_file = constant_file
|
16
|
+
@environment = environment
|
17
|
+
end
|
18
|
+
|
19
|
+
def inject_urls
|
20
|
+
IO.write('', File.open do |file|
|
21
|
+
file.read.gsub(
|
22
|
+
authentication_url_text, authentication_url
|
23
|
+
).gsub(
|
24
|
+
authorization_url_text, authorization_url
|
25
|
+
).gsub(
|
26
|
+
api_url_test, api_url
|
27
|
+
)
|
28
|
+
end)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
attr_reader :config_file, :constant_file, :environment
|
34
|
+
|
35
|
+
def authentication_url_text
|
36
|
+
'Declare the authentication_url in the config.yaml, '\
|
37
|
+
'Rugular will fill this in for you'
|
38
|
+
end
|
39
|
+
|
40
|
+
def authorization_url_text
|
41
|
+
'Declare the authorization_url in the config.yaml, '\
|
42
|
+
'Rugular will fill this in for you'
|
43
|
+
end
|
44
|
+
|
45
|
+
def api_url_text
|
46
|
+
'Declare the api_url in the config.yaml, '\
|
47
|
+
'Rugular will fill this in for you'
|
48
|
+
end
|
49
|
+
|
50
|
+
def backend_yaml
|
51
|
+
ERB.new(pathname.read).result
|
52
|
+
end
|
53
|
+
|
54
|
+
def authentication_url
|
55
|
+
backend_yaml.fetch(environment).fetch(:authentication_url)
|
56
|
+
end
|
57
|
+
|
58
|
+
def authorization_url
|
59
|
+
backend_yaml.fetch(environment).fetch(:authorization_url)
|
60
|
+
end
|
61
|
+
|
62
|
+
def api_url
|
63
|
+
backend_yaml.fetch(environment).fetch(:api_url)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/lib/rugular/tasks/new.rb
CHANGED
@@ -17,12 +17,10 @@ module Rugular
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def create_custom_files
|
20
|
-
|
21
|
-
"#{
|
22
|
-
|
23
|
-
pathname = Pathname.new(file_name)
|
20
|
+
template_file_names.each do |(file_name, template_file_name)|
|
21
|
+
create_file "#{app_name}/#{template_file_name.gsub('.erb', '')}" do
|
22
|
+
pathname = Pathname.new(file_name)
|
24
23
|
|
25
|
-
create_file "#{app_name}/#{pathname.basename('.erb').to_s}" do
|
26
24
|
ERB.new(pathname.read).result(
|
27
25
|
app_open_struct.instance_eval { binding }
|
28
26
|
)
|
@@ -34,12 +32,18 @@ module Rugular
|
|
34
32
|
empty_directory "#{app_name}/src/components"
|
35
33
|
end
|
36
34
|
|
35
|
+
def create_vendor_directory
|
36
|
+
empty_directory "#{app_name}/vendor"
|
37
|
+
end
|
38
|
+
|
39
|
+
def install_bourbon
|
40
|
+
run "cd #{app_name}/vendor && bourbon install "\
|
41
|
+
'&& neat install && bitters install'
|
42
|
+
end
|
43
|
+
|
37
44
|
def installation_complete
|
38
|
-
puts
|
39
|
-
"project with: `cd #{app_open_struct.name} &&
|
40
|
-
"rugular dependencies`\n"\
|
41
|
-
"Please install bourbon and neat by bundle exec bourbon install "\
|
42
|
-
"--path src/ and neat with bundle exec neat install --path src/"
|
45
|
+
puts 'Thank you for installing Rugular, please finish setting up your '\
|
46
|
+
"project with: `cd #{app_open_struct.name} && rugular dependencies`\n"
|
43
47
|
end
|
44
48
|
|
45
49
|
private
|
@@ -52,5 +56,15 @@ module Rugular
|
|
52
56
|
__dir__.chomp('/tasks')
|
53
57
|
end
|
54
58
|
|
59
|
+
def template_file_names
|
60
|
+
real_file_names = Dir.glob(
|
61
|
+
"#{lib_directory}/templates/new_erb/**/*.erb"
|
62
|
+
)
|
63
|
+
abbreviated_file_names = real_file_names.map do |file_name|
|
64
|
+
file_name.gsub("#{lib_directory}/templates/new_erb/", '')
|
65
|
+
end
|
66
|
+
|
67
|
+
real_file_names.zip(abbreviated_file_names)
|
68
|
+
end
|
55
69
|
end
|
56
70
|
end
|
@@ -13,14 +13,16 @@ module Guard
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def start
|
16
|
-
|
16
|
+
run_all
|
17
17
|
end
|
18
18
|
|
19
19
|
def stop; true end
|
20
20
|
def reload; true end
|
21
21
|
|
22
22
|
def run_all
|
23
|
-
run_on_changes(
|
23
|
+
run_on_changes(
|
24
|
+
Dir.glob('src/**/*').unshift('vendor_and_bower_components.yaml')
|
25
|
+
)
|
24
26
|
end
|
25
27
|
|
26
28
|
def run_on_changes(paths)
|
@@ -9,6 +9,8 @@ class RugularVendorAndBowerComponents
|
|
9
9
|
def initialize; end
|
10
10
|
|
11
11
|
def compile
|
12
|
+
::Guard::UI.info 'Beginning to create vendor asset files'
|
13
|
+
|
12
14
|
File.open('.tmp/vendor.css', 'w') do |file|
|
13
15
|
file.write bower_css
|
14
16
|
end
|
@@ -16,7 +18,7 @@ class RugularVendorAndBowerComponents
|
|
16
18
|
file.write(Uglifier.compile(bower_and_vendor_javascript))
|
17
19
|
end
|
18
20
|
|
19
|
-
|
21
|
+
'Successfully created vendor asset files'
|
20
22
|
end
|
21
23
|
|
22
24
|
private
|
@@ -27,18 +29,30 @@ class RugularVendorAndBowerComponents
|
|
27
29
|
|
28
30
|
def bower_css
|
29
31
|
bower_yaml.fetch('bower_components').fetch('css').map do |filename|
|
32
|
+
bower_component_file = 'bower_components/' + filename
|
33
|
+
next unless File.file? bower_component_file
|
30
34
|
File.read('bower_components/' + filename)
|
31
35
|
end.join
|
32
36
|
end
|
33
37
|
|
34
38
|
def bower_javascript
|
35
39
|
bower_yaml.fetch('bower_components').fetch('js').map do |filename|
|
40
|
+
bower_component_file = 'bower_components/' + filename
|
41
|
+
next unless File.file? bower_component_file
|
36
42
|
File.read('bower_components/' + filename)
|
37
43
|
end.join
|
38
44
|
end
|
39
45
|
|
40
46
|
def vendor_javascript
|
47
|
+
bower_yaml.fetch('vendor').fetch('javascript').map do |filename|
|
48
|
+
vendor_file = 'vendor/' + filename
|
49
|
+
next unless File.file? vendor_file
|
50
|
+
File.read(vendor_file)
|
51
|
+
end.join +
|
52
|
+
|
41
53
|
bower_yaml.fetch('vendor').fetch('coffee').map do |filename|
|
54
|
+
vendor_file = 'vendor/' + filename
|
55
|
+
next unless File.file? vendor_file
|
42
56
|
CoffeeScript.compile(File.read('vendor/' + filename))
|
43
57
|
end.join
|
44
58
|
end
|
data/lib/rugular/tasks/server.rb
CHANGED
@@ -5,7 +5,13 @@ module Rugular
|
|
5
5
|
class Server < Thor::Group
|
6
6
|
include Thor::Actions
|
7
7
|
|
8
|
-
|
8
|
+
def self.exit_on_failue?; true end
|
9
|
+
def check_for_rugular_directory
|
10
|
+
::Rugular::AppChecker.check_for_rugular_directory(
|
11
|
+
task_name: self.class.name,
|
12
|
+
root_directory: destination_root
|
13
|
+
)
|
14
|
+
end
|
9
15
|
|
10
16
|
desc(
|
11
17
|
"runs the test suite and a dev server on localhost:8080 "\
|
data/lib/rugular/tasks/tmux.rb
CHANGED
@@ -2,16 +2,22 @@ module Rugular
|
|
2
2
|
class Tmux < Thor::Group
|
3
3
|
include Thor::Actions
|
4
4
|
|
5
|
-
|
5
|
+
def self.exit_on_failue?; true end
|
6
|
+
def check_for_rugular_directory
|
7
|
+
::Rugular::AppChecker.check_for_rugular_directory(
|
8
|
+
task_name: self.class.name,
|
9
|
+
root_directory: destination_root
|
10
|
+
)
|
11
|
+
end
|
6
12
|
|
7
|
-
desc
|
13
|
+
desc 'creates a new tmux session with the processes necessary for rugular'
|
8
14
|
|
9
15
|
def copy_tmux_file
|
10
16
|
FileUtils.cp tmuxinator_file, "#{Dir.home}/.tmuxinator/rugular.yml"
|
11
17
|
end
|
12
18
|
|
13
19
|
def start_tmux
|
14
|
-
system
|
20
|
+
system 'tmuxinator start rugular'
|
15
21
|
end
|
16
22
|
|
17
23
|
private
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Config for the rugular server command
|
2
|
+
development:
|
3
|
+
backend:
|
4
|
+
authentication_url: 'http://127.0.0.1:3000'
|
5
|
+
authorization_url: 'http://127.0.0.1:4000'
|
6
|
+
api_url: 'http://127.0.0.1:5000'
|
7
|
+
|
8
|
+
# Config for the rugular build command
|
9
|
+
production:
|
10
|
+
backend:
|
11
|
+
authentication_url: <%= ENV['RUGULAR_AUTHENTICATION_SERVER'] %>
|
12
|
+
authorization_url: <%= ENV['RUGULAR_AUTHORIZATION_SERVER'] %>
|
13
|
+
api_url: <%= ENV['RUGULAR_API_SERVER'] %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Do not change the contents of this file, it is used by Rugular
|
2
|
+
# to inject api endpoints as part of the build process
|
3
|
+
BACKEND =
|
4
|
+
authentication_url: 'Declare the authentication_url in the config.yaml, Rugular will fill this in for you'
|
5
|
+
authorization_url: 'Declare the authorization_url in the config.yaml, Rugular will fill this in for you'
|
6
|
+
api_url: 'Declare the api_url in the config.yaml, Rugular will fill this in for you'
|
7
|
+
|
8
|
+
angular.module('app').constant('BACKEND', BACKEND)
|
@@ -2,6 +2,14 @@
|
|
2
2
|
%html{'ng-app' => 'app'}
|
3
3
|
%head
|
4
4
|
%title <%= name %>
|
5
|
+
|
6
|
+
%link(href='vendor.css' media='screen' rel='stylesheet')
|
7
|
+
%link(href='application.css' media='screen' rel='stylesheet')
|
5
8
|
-# You do not need to add link or script tags. Rugular will do that for you.
|
6
9
|
%body
|
7
10
|
%ui-view
|
11
|
+
|
12
|
+
%script(src='vendor.js')
|
13
|
+
|
14
|
+
.application_javascript
|
15
|
+
%script(src='application.js')
|
data/lib/rugular/version.rb
CHANGED
data/rugular.gemspec
CHANGED
@@ -18,17 +18,20 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
20
|
spec.add_runtime_dependency 'actionview', '~> 4'
|
21
|
+
spec.add_runtime_dependency 'bitters', '~> 1'
|
22
|
+
spec.add_runtime_dependency 'bourbon', '~> 4'
|
23
|
+
spec.add_runtime_dependency 'coffee-script', '~> 2'
|
24
|
+
spec.add_runtime_dependency 'foreman', '~> 0'
|
21
25
|
spec.add_runtime_dependency 'guard', '~> 2'
|
22
26
|
spec.add_runtime_dependency 'guard-compat', '~> 1'
|
23
|
-
spec.add_runtime_dependency 'coffee-script', '~> 2'
|
24
27
|
spec.add_runtime_dependency 'haml', '~> 4'
|
28
|
+
spec.add_runtime_dependency 'neat', '~> 1'
|
29
|
+
spec.add_runtime_dependency 'nokogiri', '~> 1'
|
25
30
|
spec.add_runtime_dependency 'sass', '~> 3'
|
26
|
-
spec.add_runtime_dependency 'uglifier', '~> 2'
|
27
|
-
spec.add_runtime_dependency 'foreman', '~> 0'
|
28
|
-
spec.add_runtime_dependency 'thor', '~> 0'
|
29
31
|
spec.add_runtime_dependency 'sass-globbing', '~> 1'
|
30
|
-
spec.add_runtime_dependency '
|
32
|
+
spec.add_runtime_dependency 'thor', '~> 0'
|
31
33
|
spec.add_runtime_dependency 'tmuxinator', '~> 0'
|
34
|
+
spec.add_runtime_dependency 'uglifier', '~> 2'
|
32
35
|
|
33
36
|
spec.add_development_dependency 'aruba', '~> 0'
|
34
37
|
spec.add_development_dependency 'byebug', '~> 3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugular
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Shook
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -25,33 +25,33 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bitters
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: bourbon
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '4'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: coffee-script
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,77 +67,77 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: foreman
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: guard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '2'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '2'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: guard-compat
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '1'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '1'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: haml
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '4'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '4'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: neat
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '1'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '1'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: nokogiri
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
@@ -151,7 +151,21 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '1'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: sass
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: sass-globbing
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
@@ -164,6 +178,20 @@ dependencies:
|
|
164
178
|
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '1'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: thor
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
167
195
|
- !ruby/object:Gem::Dependency
|
168
196
|
name: tmuxinator
|
169
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,6 +206,20 @@ dependencies:
|
|
178
206
|
- - "~>"
|
179
207
|
- !ruby/object:Gem::Version
|
180
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: uglifier
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '2'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '2'
|
181
223
|
- !ruby/object:Gem::Dependency
|
182
224
|
name: aruba
|
183
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,6 +310,7 @@ files:
|
|
268
310
|
- lib/rugular/tasks/generate/generator_base.rb
|
269
311
|
- lib/rugular/tasks/generate/route.rb
|
270
312
|
- lib/rugular/tasks/helpers/app_checker.rb
|
313
|
+
- lib/rugular/tasks/helpers/backend_url_injector.rb
|
271
314
|
- lib/rugular/tasks/helpers/haml_renderer.rb
|
272
315
|
- lib/rugular/tasks/new.rb
|
273
316
|
- lib/rugular/tasks/server.rb
|
@@ -292,8 +335,10 @@ files:
|
|
292
335
|
- lib/rugular/templates/filter/app.filter.coffee.erb
|
293
336
|
- lib/rugular/templates/filter/app.filter.spec.coffee.erb
|
294
337
|
- lib/rugular/templates/filter/app.module.coffee.erb
|
338
|
+
- lib/rugular/templates/new/.application.sass
|
295
339
|
- lib/rugular/templates/new/.gitignore
|
296
340
|
- lib/rugular/templates/new/Gemfile
|
341
|
+
- lib/rugular/templates/new/config.yaml
|
297
342
|
- lib/rugular/templates/new/e2e/app_spec.coffee
|
298
343
|
- lib/rugular/templates/new/karma.conf.js
|
299
344
|
- lib/rugular/templates/new/protractor.conf.js
|
@@ -303,7 +348,7 @@ files:
|
|
303
348
|
- lib/rugular/templates/new/src/app/app.module.coffee
|
304
349
|
- lib/rugular/templates/new/src/app/app.routes.coffee
|
305
350
|
- lib/rugular/templates/new/src/app/app.sass
|
306
|
-
- lib/rugular/templates/new/src/
|
351
|
+
- lib/rugular/templates/new/src/app/backend.contsant.coffee
|
307
352
|
- lib/rugular/templates/new/src/favicon.ico
|
308
353
|
- lib/rugular/templates/new/test/spec_helper.js
|
309
354
|
- lib/rugular/templates/new/vendor_and_bower_components.yaml
|