rails-angularjs_crud_generator 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 553a4111b1328847bcc44dd43ecf7a3972e56764
4
+ data.tar.gz: 742302c6cb5badf5c788f319eef9a61f0b865534
5
+ SHA512:
6
+ metadata.gz: 4085954b07bcfa5d1867cb67f3e6da852da7b82c3563336114a9df3c2547ab135a62c0413c55ef1e6869b22b946963c8bc729a9f68b29e0e6dddb8b4f0c39c34
7
+ data.tar.gz: becc2f7f9f619ff53a69711c16eae839d2f20eb946e91fd2b503c709bb9f59f1a35e2078a754c394837638e77eb8032cb4d2b6149d7a81c9a4e6a1cbd679b291
@@ -0,0 +1,42 @@
1
+ class AngularjsCrudGenerator < Rails::Generators::NamedBase
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ def print_start
5
+ puts 'starting...'
6
+ end
7
+
8
+ def create_app_dir
9
+ empty_directory app_dir
10
+ end
11
+
12
+ def create_main_js_file
13
+ template "angular_app/main.js", "#{app_dir}/main.js"
14
+ end
15
+
16
+ def create_test_files
17
+ template "angular_app/test/services/model_spec.js", "#{app_dir}/test/services/#{file_name}_spec.js"
18
+ template "angular_app/test/directives/form_spec.js", "#{app_dir}/test/directives/#{file_name}_form_spec.js"
19
+ template "angular_app/test/controllers/main_ctrl_spec.js", "#{app_dir}/test/controllers/main_ctrl_spec.js"
20
+ end
21
+
22
+ def create_template_files
23
+ template "angular_app/templates/tmpl_form.html", "#{app_dir}/templates/tmpl_form.html"
24
+ template "angular_app/templates/tmpl_new.html", "#{app_dir}/templates/tmpl_new.html"
25
+ template "angular_app/templates/tmpl_edit.html", "#{app_dir}/templates/tmpl_edit.html"
26
+ template "angular_app/templates/tmpl_show.html", "#{app_dir}/templates/tmpl_show.html"
27
+ template "angular_app/templates/tmpl_delete.html", "#{app_dir}/templates/tmpl_delete.html"
28
+ end
29
+
30
+ def create_app_partial
31
+ template "_app_partial.html.erb", "app/views/angular_apps/_#{file_name.pluralize}_app.html.erb"
32
+ end
33
+
34
+ def print_end
35
+ puts 'done.'
36
+ end
37
+
38
+ private
39
+ def app_dir
40
+ "public/assets/js/apps/#{file_name.pluralize}"
41
+ end
42
+ end
@@ -0,0 +1,25 @@
1
+ module BowerHelper
2
+ def bower_init
3
+ copy_bower_json
4
+ copy_bower_rc
5
+ gitignore_bower_components
6
+ end
7
+
8
+ def copy_bower_json
9
+ copy_file 'bower.json'
10
+ end
11
+
12
+ def copy_bower_rc
13
+ copy_file '_bowerrc', '.bowerrc'
14
+ end
15
+
16
+ def gitignore_bower_components
17
+ run "echo '/public/assets/bower_components' >> .gitignore"
18
+ end
19
+
20
+ def run_bower_install(*args)
21
+ options = args.join(' ')
22
+
23
+ run "bower install #{options}"
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module NpmHelper
2
+ def npm_init
3
+ copy_package_json
4
+ copy_karma_conf
5
+ gitignore_node_modules
6
+ end
7
+
8
+ def copy_package_json
9
+ copy_file "package.json"
10
+ end
11
+
12
+ def copy_karma_conf
13
+ copy_file "karma.conf.js"
14
+ end
15
+
16
+ def gitignore_node_modules
17
+ run "echo '/node_modules' >> .gitignore"
18
+ end
19
+
20
+ def run_npm_install(*args)
21
+ options = args.join(' ')
22
+
23
+ run "npm install #{options}"
24
+ end
25
+ end
@@ -0,0 +1,42 @@
1
+ require_relative "../helpers/bower_helper"
2
+ require_relative "../helpers/npm_helper"
3
+
4
+ module AngularjsCrud
5
+ module Generators
6
+ class InstallGenerator < ::Rails::Generators::Base
7
+ include BowerHelper
8
+ include NpmHelper
9
+
10
+ source_root ::File.expand_path('../templates', __FILE__)
11
+
12
+ desc 'Installs the required packages and files for AngularjsCrudGenerator'
13
+
14
+ def init_npm_files
15
+ npm_init
16
+ end
17
+
18
+ def install_npm_packages
19
+ run_npm_install
20
+ end
21
+
22
+ def init_bower_config_file
23
+ bower_init
24
+ end
25
+
26
+ def install_bower_packages
27
+ run_bower_install '--save', 'jquery',
28
+ 'bootstrap',
29
+ 'font-awesome',
30
+ 'angular',
31
+ 'angular-resource',
32
+ 'angular-bootstrap'
33
+
34
+ run_bower_install '--save-dev', 'angular-mocks'
35
+ end
36
+
37
+ def copy_angular_js_view_helper
38
+ copy_file "angular_js_helper.rb", "app/helpers/angular_js_helper.rb"
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,19 @@
1
+ module AngularJsHelper
2
+
3
+ def angular_inline_template(relative_file_path, template_id=nil)
4
+ root_dir = "../../public/assets/js/apps"
5
+
6
+ external_template_path = "#{root_dir}/#{relative_file_path}"
7
+ external_template = render template: external_template_path
8
+ template_id = relative_file_path if template_id == nil
9
+
10
+ inline_template = <<-HTML
11
+ <script type="text/ng-template" id="#{template_id}">
12
+ #{external_template}
13
+ </script>
14
+ HTML
15
+
16
+ inline_template.html_safe
17
+ end
18
+ end
19
+
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-angularjs_crud_generator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Chanaka Sandaruwan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Generates a fully working angularjs app for basic crud operations of
14
+ a model.
15
+ email: chanakasan@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/generators/angularjs_crud/angularjs_crud_generator.rb
21
+ - lib/generators/angularjs_crud/helpers/bower_helper.rb
22
+ - lib/generators/angularjs_crud/helpers/npm_helper.rb
23
+ - lib/generators/angularjs_crud/install/install_generator.rb
24
+ - lib/generators/angularjs_crud/install/templates/angular_js_helper.rb
25
+ homepage: https://github.com/chanakasan/rails-angularjs_crud_generator
26
+ licenses:
27
+ - Apache License, Version 2.0
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 1.9.3
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.2.3
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Generates fully working angularjs apps
49
+ test_files: []