extjs-mvc 0.4.0.b → 0.4.0.d
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +6 -9
- data/VERSION +1 -1
- data/bin/extjs-mvc +19 -0
- data/lib/extjs-mvc.rb +13 -67
- data/lib/{js → vendor}/App.js +0 -0
- data/lib/{js → vendor}/MVC.js +0 -0
- data/lib/{js → vendor}/Presenter.js +0 -0
- data/lib/{js → vendor}/README.rdoc +0 -0
- data/lib/{js → vendor}/controller/Controller.js +0 -0
- data/lib/{js → vendor}/controller/CrudController.js +0 -0
- data/lib/{js → vendor}/lib/Array.js +0 -0
- data/lib/{js → vendor}/lib/Booter.js +4 -3
- data/lib/{js → vendor}/lib/ClassManager.js +0 -0
- data/lib/{js → vendor}/lib/ControllerClassManager.js +0 -0
- data/lib/{js → vendor}/lib/Dependencies.js +0 -0
- data/lib/{js → vendor}/lib/DispatchMatcher.js +0 -0
- data/lib/{js → vendor}/lib/Dispatcher.js +0 -0
- data/lib/{js → vendor}/lib/Environment.js +0 -0
- data/lib/{js → vendor}/lib/Inflector.js +17 -0
- data/lib/{js → vendor}/lib/ModelClassManager.js +0 -0
- data/lib/{js → vendor}/lib/Route.js +0 -0
- data/lib/{js → vendor}/lib/Router.js +0 -0
- data/lib/{js → vendor}/lib/String.js +0 -0
- data/lib/{js → vendor}/lib/ViewClassManager.js +0 -0
- data/lib/{js → vendor}/lib/notes.txt +0 -0
- data/lib/{js → vendor}/model/AdapterManager.js +0 -0
- data/lib/{js → vendor}/model/Association.js +0 -0
- data/lib/{js → vendor}/model/Base.js +0 -0
- data/lib/{js → vendor}/model/BelongsToAssociation.js +0 -0
- data/lib/{js → vendor}/model/Cache.js +0 -0
- data/lib/{js → vendor}/model/HasManyAssociation.js +0 -0
- data/lib/{js → vendor}/model/Model.js +0 -0
- data/lib/{js → vendor}/model/UrlBuilder.js +0 -0
- data/lib/{js → vendor}/model/adapters/AbstractAdapter.js +0 -0
- data/lib/{js → vendor}/model/adapters/MemoryAdapter.js +0 -0
- data/lib/{js → vendor}/model/adapters/RESTAdapter.js +0 -0
- data/lib/{js → vendor}/model/adapters/RESTJSONAdapter.js +0 -0
- data/lib/{js → vendor}/model/adapters/notes.txt +0 -0
- data/lib/{js → vendor}/model/associations/Association.js +0 -0
- data/lib/{js → vendor}/model/associations/notes.txt +0 -0
- data/lib/{js → vendor}/model/validations/Errors.js +0 -0
- data/lib/{js → vendor}/model/validations/Plugin.js +0 -0
- data/lib/{js → vendor}/model/validations/Validations.js +0 -0
- data/lib/{js → vendor}/notes/Charts.graffle +0 -0
- data/lib/{js → vendor}/overrides/Ext.Component.js +0 -0
- data/lib/{js → vendor}/overrides/Ext.extend.js +0 -0
- data/lib/{js → vendor}/spec/Array.spec.js +0 -0
- data/lib/{js → vendor}/spec/ExtMVC.spec.js +0 -0
- data/lib/{js → vendor}/spec/Model.spec.js +0 -0
- data/lib/{js → vendor}/spec/OS.spec.js +0 -0
- data/lib/{js → vendor}/spec/Router.spec.js +0 -0
- data/lib/{js → vendor}/spec/SpecHelper.js +0 -0
- data/lib/{js → vendor}/spec/String.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/AbstractAdapter.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/Associations.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/Cache.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/RESTAdapter.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/ValidationErrors.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/Validations.spec.js +0 -0
- data/lib/{js → vendor}/spec/model/ValidationsPlugin.spec.js +0 -0
- data/lib/{js → vendor}/spec/suite.html +0 -0
- data/lib/{js → vendor}/specs-old/JSSpec.css +0 -0
- data/lib/{js → vendor}/specs-old/JSSpec.js +0 -0
- data/lib/{js → vendor}/specs-old/all.html +0 -0
- data/lib/{js → vendor}/specs-old/base.js +0 -0
- data/lib/{js → vendor}/specs-old/controller.js +0 -0
- data/lib/{js → vendor}/specs-old/diff_match_patch.js +0 -0
- data/lib/{js → vendor}/specs-old/model.js +0 -0
- data/lib/{js → vendor}/specs-old/route.js +0 -0
- data/lib/{js → vendor}/specs-old/router.js +0 -0
- data/lib/{js → vendor}/specs-old/string.js +0 -0
- data/lib/{js → vendor}/testrunner/JSpecFormatter.js +0 -0
- data/lib/{js → vendor}/testrunner/TestClient.js +0 -0
- data/lib/{js → vendor}/testrunner/TestGrid.js +0 -0
- data/lib/{js → vendor}/testrunner/TestRunner.js +0 -0
- data/lib/{js → vendor}/testrunner/TestViewport.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/EXAMPLE.html +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/LICENSE +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/README.markdown +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/jquery-1.2.3.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/jquery.fn.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/jquery.print.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.assets.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.behaviors.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.builder.js +0 -0
- data/lib/{js → vendor}/vendor/screw-unit/lib/screw.css +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.events.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.matchers.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/lib/screw.server.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/spec/behaviors_spec.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/spec/matchers_spec.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/spec/print_spec.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/spec/spec_helper.js +0 -0
- data/lib/{extjs-mvc/generators/templates/app → vendor}/vendor/screw-unit/spec/suite.html +0 -0
- data/lib/{js → vendor}/view/FormWindow.js +0 -0
- data/lib/{js → vendor}/view/HasManyEditorGridPanel.js +0 -0
- data/lib/{js → vendor}/view/scaffold/Edit.js +0 -0
- data/lib/{js → vendor}/view/scaffold/Index.js +0 -0
- data/lib/{js → vendor}/view/scaffold/New.js +0 -0
- data/lib/{js → vendor}/view/scaffold/ScaffoldFormPanel.js +0 -0
- data/lib/{js/build → vendor.yml} +7 -1
- metadata +110 -203
- data/bin/xmvc +0 -13
- data/lib/extjs-mvc/README +0 -20
- data/lib/extjs-mvc/builder.rb +0 -83
- data/lib/extjs-mvc/builders/all_builder.rb +0 -15
- data/lib/extjs-mvc/builders/app_builder.rb +0 -36
- data/lib/extjs-mvc/builders/base.rb +0 -138
- data/lib/extjs-mvc/builders/css_builder.rb +0 -36
- data/lib/extjs-mvc/builders/docs_builder.rb +0 -20
- data/lib/extjs-mvc/builders/mvc_builder.rb +0 -33
- data/lib/extjs-mvc/builders/plugin_builder.rb +0 -53
- data/lib/extjs-mvc/cli.rb +0 -52
- data/lib/extjs-mvc/generator.rb +0 -79
- data/lib/extjs-mvc/generators/app.rb +0 -57
- data/lib/extjs-mvc/generators/base.rb +0 -53
- data/lib/extjs-mvc/generators/controller.rb +0 -41
- data/lib/extjs-mvc/generators/model.rb +0 -41
- data/lib/extjs-mvc/generators/scaffold.rb +0 -17
- data/lib/extjs-mvc/generators/templates/Controller.js +0 -17
- data/lib/extjs-mvc/generators/templates/Model.js +0 -9
- data/lib/extjs-mvc/generators/templates/ModelSpec.js +0 -12
- data/lib/extjs-mvc/generators/templates/View.js +0 -16
- data/lib/extjs-mvc/generators/templates/_Action.js +0 -7
- data/lib/extjs-mvc/generators/templates/app/README.rdoc +0 -152
- data/lib/extjs-mvc/generators/templates/app/app/App.js +0 -64
- data/lib/extjs-mvc/generators/templates/app/app/controllers/ApplicationController.js +0 -10
- data/lib/extjs-mvc/generators/templates/app/app/controllers/HomeController.js +0 -10
- data/lib/extjs-mvc/generators/templates/app/app/views/home/Index.js +0 -17
- data/lib/extjs-mvc/generators/templates/app/app/views/layout/Menu.js +0 -23
- data/lib/extjs-mvc/generators/templates/app/config/application.js +0 -1
- data/lib/extjs-mvc/generators/templates/app/config/boot.js +0 -67
- data/lib/extjs-mvc/generators/templates/app/config/build.xml +0 -77
- data/lib/extjs-mvc/generators/templates/app/config/database.js +0 -4
- data/lib/extjs-mvc/generators/templates/app/config/environment.json +0 -58
- data/lib/extjs-mvc/generators/templates/app/config/environments/development.json +0 -1
- data/lib/extjs-mvc/generators/templates/app/config/environments/production.json +0 -4
- data/lib/extjs-mvc/generators/templates/app/config/routes.js +0 -27
- data/lib/extjs-mvc/generators/templates/app/config/settings.yml +0 -3
- data/lib/extjs-mvc/generators/templates/app/public/index.html +0 -19
- data/lib/extjs-mvc/generators/templates/app/public/stylesheets/ext-mvc-all.css +0 -49
- data/lib/extjs-mvc/generators/templates/app/spec/SpecHelper.js +0 -0
- data/lib/extjs-mvc/generators/templates/app/spec/index.html +0 -66
- data/lib/extjs-mvc/generators/templates/app/vendor/screw-unit/lib/screw.css +0 -90
- data/lib/extjs-mvc/generators/templates/scaffold/ScaffoldController.js +0 -18
- data/lib/extjs-mvc/generators/view.rb +0 -29
- data/lib/extjs-mvc/plugin.rb +0 -105
- data/lib/extjs-mvc/scripts.rb +0 -15
- data/lib/extjs-mvc/settings.rb +0 -75
- data/lib/extjs-mvc/setup.rb +0 -5
- data/lib/extjs-mvc/stats.rb +0 -241
- data/lib/extjs-mvc/test.rb +0 -11
- data/lib/extjs-mvc/testserver.ru +0 -95
- data/lib/extjs-mvc/ui.rb +0 -58
- data/lib/extjs-mvc/update.rb +0 -73
- data/lib/js/vendor/screw-unit/EXAMPLE.html +0 -68
- data/lib/js/vendor/screw-unit/LICENSE +0 -22
- data/lib/js/vendor/screw-unit/README.markdown +0 -307
- data/lib/js/vendor/screw-unit/lib/jquery-1.2.3.js +0 -3408
- data/lib/js/vendor/screw-unit/lib/jquery.fn.js +0 -29
- data/lib/js/vendor/screw-unit/lib/jquery.print.js +0 -108
- data/lib/js/vendor/screw-unit/lib/screw.assets.js +0 -36
- data/lib/js/vendor/screw-unit/lib/screw.behaviors.js +0 -91
- data/lib/js/vendor/screw-unit/lib/screw.builder.js +0 -80
- data/lib/js/vendor/screw-unit/lib/screw.events.js +0 -42
- data/lib/js/vendor/screw-unit/lib/screw.matchers.js +0 -145
- data/lib/js/vendor/screw-unit/lib/screw.server.js +0 -21
- data/lib/js/vendor/screw-unit/spec/behaviors_spec.js +0 -178
- data/lib/js/vendor/screw-unit/spec/matchers_spec.js +0 -237
- data/lib/js/vendor/screw-unit/spec/print_spec.js +0 -119
- data/lib/js/vendor/screw-unit/spec/spec_helper.js +0 -0
- data/lib/js/vendor/screw-unit/spec/suite.html +0 -18
@@ -1,66 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
-
|
4
|
-
<html>
|
5
|
-
<head>
|
6
|
-
<link type="text/css" rel="stylesheet" href="../vendor/screw-unit/lib/screw.css" />
|
7
|
-
<title>Application Specs</title>
|
8
|
-
</head>
|
9
|
-
<body>
|
10
|
-
<div id="dom_test" style="position: absolute; left: -9999"></div>
|
11
|
-
|
12
|
-
<!-- Library code (not directly part of the app) -->
|
13
|
-
<div id="libs">
|
14
|
-
<!-- Screw Unit -->
|
15
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/jquery-1.2.3.js"></script>
|
16
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/jquery.fn.js"></script>
|
17
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/jquery.print.js"></script>
|
18
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/screw.builder.js"></script>
|
19
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/screw.matchers.js"></script>
|
20
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/screw.events.js"></script>
|
21
|
-
<script type="text/javascript" src="../vendor/screw-unit/lib/screw.behaviors.js"></script>
|
22
|
-
|
23
|
-
<!-- Ext JS - using debug while in test mode -->
|
24
|
-
<script type="text/javascript" src="../vendor/ext/adapter/ext/ext-base.js"></script>
|
25
|
-
<script type="text/javascript" src="../vendor/ext/ext-all-debug.js"></script>
|
26
|
-
|
27
|
-
<!-- Ext MVC -->
|
28
|
-
<script type="text/javascript" src="../vendor/mvc/ext-mvc-all.js"></script>
|
29
|
-
</div>
|
30
|
-
|
31
|
-
<!-- Application Files - include any model, controller and view files you need to test here -->
|
32
|
-
<div id="app">
|
33
|
-
<script type="text/javascript" src="../app/OS.js"></script>
|
34
|
-
|
35
|
-
<div class="models">
|
36
|
-
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div class="controllers">
|
40
|
-
|
41
|
-
</div>
|
42
|
-
|
43
|
-
<div class="views">
|
44
|
-
|
45
|
-
</div>
|
46
|
-
</div>
|
47
|
-
|
48
|
-
<!-- Specs -->
|
49
|
-
<div id="specs">
|
50
|
-
<script type="text/javascript" src="SpecHelper.js"></script>
|
51
|
-
|
52
|
-
<div class="models">
|
53
|
-
|
54
|
-
</div>
|
55
|
-
|
56
|
-
<div class="controllers">
|
57
|
-
|
58
|
-
</div>
|
59
|
-
|
60
|
-
<div class="views">
|
61
|
-
|
62
|
-
</div>
|
63
|
-
</div>
|
64
|
-
|
65
|
-
</body>
|
66
|
-
</html>
|
@@ -1,90 +0,0 @@
|
|
1
|
-
html {
|
2
|
-
padding: 0.5em;
|
3
|
-
font-family: Georgia, serif;
|
4
|
-
background: #EDEBD5;
|
5
|
-
}
|
6
|
-
|
7
|
-
li {
|
8
|
-
list-style-type: none;
|
9
|
-
}
|
10
|
-
|
11
|
-
.focused {
|
12
|
-
background-color: #F4F2E4;
|
13
|
-
}
|
14
|
-
|
15
|
-
.focused * {
|
16
|
-
opacity: 1.0;
|
17
|
-
}
|
18
|
-
|
19
|
-
h1, h2, p {
|
20
|
-
opacity: 0.4;
|
21
|
-
}
|
22
|
-
|
23
|
-
.describes {
|
24
|
-
padding-left: 0;
|
25
|
-
}
|
26
|
-
|
27
|
-
.describes h1 {
|
28
|
-
font-size: 1.1em;
|
29
|
-
color: #877C21;
|
30
|
-
line-height: 1.8em;
|
31
|
-
margin: 0pt 0pt 0.6em;
|
32
|
-
border-bottom: 1px solid transparent;
|
33
|
-
}
|
34
|
-
|
35
|
-
.describes h1:hover {
|
36
|
-
cursor: pointer;
|
37
|
-
color: #000;
|
38
|
-
background-color: #F4F2E4;
|
39
|
-
border-bottom: 1px solid #9A8E51;
|
40
|
-
}
|
41
|
-
|
42
|
-
.describes .describe {
|
43
|
-
margin-left: 0.6em;
|
44
|
-
padding-left: 0.6em;
|
45
|
-
border: 1px dashed grey;
|
46
|
-
}
|
47
|
-
|
48
|
-
.describes .describe .its {}
|
49
|
-
|
50
|
-
.describes .describe .its .it {
|
51
|
-
list-style-type: lower-roman;
|
52
|
-
list-style-position: outside;
|
53
|
-
}
|
54
|
-
|
55
|
-
.describes .describe .its .it h2 {
|
56
|
-
font-weight: normal;
|
57
|
-
font-style: italic;
|
58
|
-
padding-left: 0.5em;
|
59
|
-
font-size: 1.0em;
|
60
|
-
color: #877C21;
|
61
|
-
line-height: 1.8em;
|
62
|
-
margin: 0 0 0.5em;
|
63
|
-
border-bottom: 1px solid transparent;
|
64
|
-
}
|
65
|
-
|
66
|
-
.describes .describe .its .it.enqueued h2 {
|
67
|
-
background-color: #CC6600;
|
68
|
-
color: white !important;
|
69
|
-
}
|
70
|
-
|
71
|
-
.describes .describe .its .it.passed h2 {
|
72
|
-
background-color: #5A753D;
|
73
|
-
color: white !important;
|
74
|
-
}
|
75
|
-
|
76
|
-
.describes .describe .its .it.failed h2 {
|
77
|
-
background-color: #993300;
|
78
|
-
color: white !important;
|
79
|
-
}
|
80
|
-
|
81
|
-
.describes .describe .its .it.failed p {
|
82
|
-
margin-left: 1em;
|
83
|
-
color: #993300;
|
84
|
-
}
|
85
|
-
|
86
|
-
.describes .describe .its .it h2:hover {
|
87
|
-
cursor: pointer;
|
88
|
-
color: #000 !important;
|
89
|
-
border-bottom: 1px solid #9A8E51;
|
90
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @class <%= @namespace %>.controllers.<%= @controller_name %>
|
3
|
-
* @extends ExtMVC.Controller
|
4
|
-
*/
|
5
|
-
<%= @namespace %>.controllers.<%= @controller_name %> = Ext.extend(ExtMVC.Controller, {
|
6
|
-
constructor: function() {
|
7
|
-
//super
|
8
|
-
<%= @namespace %>.controllers.<%= @controller_name %>.superclass.constructor.call(this, {
|
9
|
-
viewsPackage: <%= @namespace %>.views.<%= @short_name %>
|
10
|
-
});
|
11
|
-
|
12
|
-
this.actsAsCrudController(<%= @model_name %>);
|
13
|
-
}
|
14
|
-
});
|
15
|
-
|
16
|
-
ExtMVC.OS.getOS().registerController('<%= @short_name %>', <%= @namespace %>.controllers.<%= @controller_name %>);
|
17
|
-
|
18
|
-
Ext.ns('<%= @namespace %>.views.<%= @short_name %>');
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module ExtJS
|
2
|
-
module MVC
|
3
|
-
module Generator
|
4
|
-
class View < Base
|
5
|
-
def initialize(package, name)
|
6
|
-
super
|
7
|
-
|
8
|
-
@package = package
|
9
|
-
@name = name.capitalize
|
10
|
-
|
11
|
-
@view_filename = "app/views/#{package}/#{@name}.js"
|
12
|
-
|
13
|
-
@gsubs.merge!({
|
14
|
-
'name' => @name,
|
15
|
-
'view_namespace' => @package,
|
16
|
-
'filename' => @view_filename
|
17
|
-
})
|
18
|
-
end
|
19
|
-
|
20
|
-
def generate!
|
21
|
-
ensure_no_overwrite! @view_filename
|
22
|
-
ensure_directories_present! "app", "app/views", "app/views/#{@package}"
|
23
|
-
|
24
|
-
template "View.js", @view_filename
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/extjs-mvc/plugin.rb
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
# Is this really required??
|
2
|
-
#
|
3
|
-
#require 'ftools'
|
4
|
-
|
5
|
-
module ExtJS
|
6
|
-
module MVC
|
7
|
-
class Plugin
|
8
|
-
def self.dispatch
|
9
|
-
meth = ARGV.shift.downcase
|
10
|
-
name = ARGV.shift
|
11
|
-
|
12
|
-
if name == 'all'
|
13
|
-
self.send("#{meth}_all")
|
14
|
-
else
|
15
|
-
ExtMVC::Plugin.new(name).send(meth)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.install_all
|
20
|
-
self.all_plugins.each {|pluginName| ExtMVC::Plugin.new(pluginName).install}
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.uninstall_all
|
24
|
-
self.all_plugins.each {|pluginName| ExtMVC::Plugin.new(pluginName).uninstall}
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.all_plugins
|
28
|
-
pluginsDir = 'vendor/plugins'
|
29
|
-
|
30
|
-
#Gets the name of each plugin directory inside vendor/plugins and calls self.plugin with it
|
31
|
-
Dir.entries(pluginsDir).select {|fileName|
|
32
|
-
File.directory?("#{pluginsDir}/#{fileName}") && (fileName =~ /^\./) != 0
|
33
|
-
}
|
34
|
-
end
|
35
|
-
|
36
|
-
attr_reader :name, :type, :directory
|
37
|
-
|
38
|
-
def initialize name
|
39
|
-
@name = @directory = name
|
40
|
-
@type = @name =~ /git:\/\// ? 'git' : 'dir'
|
41
|
-
|
42
|
-
@public_directory = "vendor/plugins/#{@name}/public"
|
43
|
-
end
|
44
|
-
|
45
|
-
def install
|
46
|
-
install_assets
|
47
|
-
end
|
48
|
-
|
49
|
-
def install_assets
|
50
|
-
install_assets_from_directory(@public_directory) if File.exists?(@public_directory)
|
51
|
-
end
|
52
|
-
|
53
|
-
def uninstall
|
54
|
-
if File.exists?(@public_directory)
|
55
|
-
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
private
|
60
|
-
#installs all assets from the given directory and subdirs into the main /public folder
|
61
|
-
def install_assets_from_directory(directory)
|
62
|
-
directory ||= @public_directory
|
63
|
-
|
64
|
-
find_assets_in_directory(directory).each do |f|
|
65
|
-
new_asset = asset_new_location_name(f)
|
66
|
-
if File.directory?(f)
|
67
|
-
unless File.exists?(new_asset)
|
68
|
-
Dir.mkdir(new_asset)
|
69
|
-
puts "Created directory: " + new_asset
|
70
|
-
end
|
71
|
-
else
|
72
|
-
action = File.exists?(new_asset) ? 'Updated' : 'Installed'
|
73
|
-
File.copy(f, new_asset)
|
74
|
-
puts action + " file: " + new_asset
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
#recursively finds assets in directories under /public inside the plugin
|
80
|
-
def find_assets_in_directory(directory)
|
81
|
-
files = []
|
82
|
-
|
83
|
-
Dir.entries(directory).each do |e|
|
84
|
-
filename = File.join(directory, e)
|
85
|
-
next if ['.', '..'].include?(filename.split('/').last.to_s)
|
86
|
-
|
87
|
-
files.push(filename)
|
88
|
-
files.concat(find_assets_in_directory(filename)) if File.directory?(filename)
|
89
|
-
end
|
90
|
-
|
91
|
-
return files
|
92
|
-
end
|
93
|
-
|
94
|
-
#i.e. vendor/plugins/MyPlugin/public/images/image.gif becomes public/images/image.gif
|
95
|
-
def asset_new_location_name(filename)
|
96
|
-
pieces = filename.split("/")
|
97
|
-
if index = pieces.index('public')
|
98
|
-
File.join(pieces.slice(index, pieces.size))
|
99
|
-
else
|
100
|
-
filename
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
data/lib/extjs-mvc/scripts.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'vendor/mvc/scripts/builder'
|
2
|
-
require 'vendor/mvc/scripts/builders/plugin_builder'
|
3
|
-
require 'vendor/mvc/scripts/builders/mvc_builder'
|
4
|
-
require 'vendor/mvc/scripts/builders/app_builder'
|
5
|
-
require 'vendor/mvc/scripts/builders/css_builder'
|
6
|
-
require 'vendor/mvc/scripts/builders/all_builder'
|
7
|
-
require 'vendor/mvc/scripts/builders/docs_builder'
|
8
|
-
|
9
|
-
require 'vendor/mvc/scripts/generator'
|
10
|
-
require 'vendor/mvc/scripts/plugin'
|
11
|
-
require 'vendor/mvc/scripts/settings'
|
12
|
-
require 'vendor/mvc/scripts/setup'
|
13
|
-
require 'vendor/mvc/scripts/stats'
|
14
|
-
require 'vendor/mvc/scripts/test'
|
15
|
-
require 'vendor/mvc/scripts/update'
|
data/lib/extjs-mvc/settings.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
module ExtJS
|
2
|
-
module MVC
|
3
|
-
|
4
|
-
# extracts settings from the config/settings.yml file
|
5
|
-
def self.settings
|
6
|
-
@config ||= YAML.load_file('config/settings.yml')
|
7
|
-
end
|
8
|
-
|
9
|
-
# returns environment settings
|
10
|
-
def self.environment
|
11
|
-
settings['environment']
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.namespace
|
15
|
-
environment["namespace"]
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.show_settings
|
19
|
-
puts environment.inspect
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.application_files_for(environment)
|
23
|
-
files = []
|
24
|
-
|
25
|
-
[
|
26
|
-
environment["plugins"].collect {|o| "vendor/plugins/#{o}/#{o}-all.js"},
|
27
|
-
environment["overrides"].collect {|o| "config/overrides/#{o}.js"},
|
28
|
-
environment["config"].collect {|o| "#{o}.js"},
|
29
|
-
environment["models"].collect {|o| "app/models/#{o}.js"},
|
30
|
-
environment["controllers"].collect {|o| "app/controllers/#{o}Controller.js"},
|
31
|
-
environment["views"].collect {|o| o.collect {|dir, fileList| fileList.collect {|fileName| "app/views/#{dir}/#{fileName}.js"}.flatten}}.flatten
|
32
|
-
].each {|f| files.concat(f)}
|
33
|
-
|
34
|
-
files
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.css_files_for(environment)
|
38
|
-
environment['stylesheets'].collect {|s| "public/stylesheets/#{s}.css"}
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.mvc_development_environment
|
42
|
-
environment = {}
|
43
|
-
|
44
|
-
default = JSON::Parser.new(File.read('public/config/environment.json')).parse()
|
45
|
-
development = JSON::Parser.new(File.read('public/config/environments/development.json')).parse()
|
46
|
-
|
47
|
-
environment.merge!(default)
|
48
|
-
environment.merge!(development)
|
49
|
-
|
50
|
-
environment
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.mvc_production_environment
|
54
|
-
environment = {
|
55
|
-
'pluginsDir' => '../vendor/plugins',
|
56
|
-
'libDir' => '../lib',
|
57
|
-
'configDir' => '../config',
|
58
|
-
'overridesDir' => '../config/overrides',
|
59
|
-
'appDir' => '../app',
|
60
|
-
'vendor' => ['mvc'],
|
61
|
-
'mvcFilename' => 'ext-mvc-all-min',
|
62
|
-
'config' => ['app/App', 'config/routes'],
|
63
|
-
'stylesheets' => ['ext-all']
|
64
|
-
}
|
65
|
-
|
66
|
-
default = JSON::Parser.new(File.read('public/config/environment.json')).parse()
|
67
|
-
production = JSON::Parser.new(File.read('public/config/environments/production.json')).parse()
|
68
|
-
|
69
|
-
environment.merge!(default)
|
70
|
-
environment.merge!(production)
|
71
|
-
|
72
|
-
environment
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
data/lib/extjs-mvc/setup.rb
DELETED
data/lib/extjs-mvc/stats.rb
DELETED
@@ -1,241 +0,0 @@
|
|
1
|
-
module Ext
|
2
|
-
module MVC
|
3
|
-
module Stats
|
4
|
-
def self.dispatch
|
5
|
-
Statistics.new.output
|
6
|
-
end
|
7
|
-
|
8
|
-
class Statistics
|
9
|
-
|
10
|
-
# Gathers and aggregates all project statistics
|
11
|
-
def statistics
|
12
|
-
@statistics ||= begin
|
13
|
-
stats = {}
|
14
|
-
|
15
|
-
# Calculate requested stats
|
16
|
-
line_order.each do |line|
|
17
|
-
stats[line] = array_statistics(self.send(line))
|
18
|
-
end
|
19
|
-
|
20
|
-
# Calculate totals
|
21
|
-
stats[:total_code_loc] = project_code_arrays.inject(0) {|sum, e| sum + stats[e][:loc_count]}
|
22
|
-
stats[:total_spec_loc] = project_spec_arrays.inject(0) {|sum, e| sum + stats[e][:loc_count]}
|
23
|
-
|
24
|
-
stats
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Prints statistics to the console
|
29
|
-
def output
|
30
|
-
print_headings
|
31
|
-
|
32
|
-
line_order.each do |line_name|
|
33
|
-
stats = statistics[line_name]
|
34
|
-
|
35
|
-
arr = [line_headings[line_name]] + column_order.collect {|col| stats[col]}
|
36
|
-
print_line(arr)
|
37
|
-
end
|
38
|
-
|
39
|
-
print_separator
|
40
|
-
print_summary
|
41
|
-
end
|
42
|
-
|
43
|
-
# Prints a headings line based on column_order
|
44
|
-
def print_headings
|
45
|
-
puts
|
46
|
-
print_separator
|
47
|
-
|
48
|
-
columns = ["Name"];
|
49
|
-
column_order.each {|heading| columns.push(column_headings[heading])}
|
50
|
-
print_line(columns)
|
51
|
-
|
52
|
-
print_separator
|
53
|
-
end
|
54
|
-
|
55
|
-
def print_totals
|
56
|
-
# columns = ["Totals"]
|
57
|
-
# column_order.collect {|c| statistics}
|
58
|
-
|
59
|
-
# print_line(columns)
|
60
|
-
end
|
61
|
-
|
62
|
-
# Prints a summary line with total LOC
|
63
|
-
def print_summary
|
64
|
-
stats = [statistics[:total_code_loc], statistics[:total_spec_loc]]
|
65
|
-
stats.push(stats[1].to_f / stats[0].to_f)
|
66
|
-
|
67
|
-
puts " Code LOC: %s Test LOC: %s Code to Test Ratio: 1:%1.1f" % stats
|
68
|
-
puts
|
69
|
-
end
|
70
|
-
|
71
|
-
# Prints a separator line
|
72
|
-
def print_separator
|
73
|
-
str = "+" + "-" * (title_width + 2)
|
74
|
-
|
75
|
-
column_order.length.times do
|
76
|
-
str += "+" + "-" * (column_width + 2)
|
77
|
-
end
|
78
|
-
|
79
|
-
puts str + '+'
|
80
|
-
end
|
81
|
-
|
82
|
-
# Prints an array of string as a line
|
83
|
-
def print_line(line_elements)
|
84
|
-
str = "| "
|
85
|
-
|
86
|
-
line_elements.each_with_index do |element, index|
|
87
|
-
if index == 0
|
88
|
-
str += element.to_s.ljust(title_width) + " | "
|
89
|
-
else
|
90
|
-
str += element.to_s.rjust(column_width) + " | "
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
puts str
|
95
|
-
end
|
96
|
-
|
97
|
-
# Calculates the width of the first column. Elements will be padded to this width
|
98
|
-
def title_width
|
99
|
-
line_headings.values.collect {|l| l.to_s.length}.max + 8
|
100
|
-
end
|
101
|
-
|
102
|
-
# Calculates the width of all columns but the first. Elements will be padded to this width
|
103
|
-
def column_width
|
104
|
-
column_headings.values.collect {|l| l.to_s.length}.max + 2
|
105
|
-
end
|
106
|
-
|
107
|
-
# The statistics columns to show, in order
|
108
|
-
def column_order
|
109
|
-
[:line_count, :loc_count, :file_count, :class_length]
|
110
|
-
end
|
111
|
-
|
112
|
-
# The lines to show, in order
|
113
|
-
def line_order
|
114
|
-
[:controller_files, :model_files, :view_files, :lib_files, :controller_specs, :model_specs, :view_specs]
|
115
|
-
end
|
116
|
-
|
117
|
-
# The arrays to use when calculating totals for project LOC etc
|
118
|
-
def project_code_arrays
|
119
|
-
[:controller_files, :model_files, :view_files, :lib_files]
|
120
|
-
end
|
121
|
-
|
122
|
-
# The arrays to use when calculating totals for project spec LOC etc
|
123
|
-
def project_spec_arrays
|
124
|
-
[:controller_specs, :model_specs, :view_specs]
|
125
|
-
end
|
126
|
-
|
127
|
-
# Mappings between method and human names for line headings
|
128
|
-
def line_headings
|
129
|
-
{
|
130
|
-
:controller_files => "Controllers",
|
131
|
-
:model_files => "Models",
|
132
|
-
:view_files => "Views",
|
133
|
-
:lib_files => "Libraries",
|
134
|
-
:plugin_files => "Plugins",
|
135
|
-
:controller_specs => "Controller Specs",
|
136
|
-
:model_specs => "Model Specs",
|
137
|
-
:view_specs => "View Specs"
|
138
|
-
}
|
139
|
-
end
|
140
|
-
|
141
|
-
# Mappings between method and human names for column headings
|
142
|
-
def column_headings
|
143
|
-
{
|
144
|
-
:line_count => "Lines",
|
145
|
-
:loc_count => "LOC",
|
146
|
-
:file_count => "Classes",
|
147
|
-
:method_count => "Methods",
|
148
|
-
:average_methods => "M/C",
|
149
|
-
:method_length => "LOC/M",
|
150
|
-
:class_length => "LOC/C"
|
151
|
-
}
|
152
|
-
end
|
153
|
-
|
154
|
-
def controller_files
|
155
|
-
files_in('app/controllers') + ['app/App.js']
|
156
|
-
end
|
157
|
-
|
158
|
-
def model_files
|
159
|
-
files_in('app/models')
|
160
|
-
end
|
161
|
-
|
162
|
-
def view_files
|
163
|
-
files_in('app/views')
|
164
|
-
end
|
165
|
-
|
166
|
-
def lib_files
|
167
|
-
files_in('lib')
|
168
|
-
end
|
169
|
-
|
170
|
-
def plugin_files
|
171
|
-
files_in('vendor/plugins')
|
172
|
-
end
|
173
|
-
|
174
|
-
def controller_specs
|
175
|
-
files_in('spec/controllers')
|
176
|
-
end
|
177
|
-
|
178
|
-
def model_specs
|
179
|
-
files_in('spec/models')
|
180
|
-
end
|
181
|
-
|
182
|
-
def view_specs
|
183
|
-
files_in('spec/views')
|
184
|
-
end
|
185
|
-
|
186
|
-
private
|
187
|
-
def files_in(directory)
|
188
|
-
Dir.glob("#{directory}/**/*.js")
|
189
|
-
end
|
190
|
-
|
191
|
-
#calculates aggregated statistics for an array of files
|
192
|
-
def array_statistics(files_array)
|
193
|
-
file_count = 0; line_count = 0; loc_count = 0;
|
194
|
-
|
195
|
-
files_array.collect {|f| file_statistics(f)}.each do |stats|
|
196
|
-
file_count += 1
|
197
|
-
line_count += stats[:line_count]
|
198
|
-
loc_count += stats[:loc_count]
|
199
|
-
end
|
200
|
-
|
201
|
-
{
|
202
|
-
:file_count => file_count,
|
203
|
-
:line_count => line_count,
|
204
|
-
:loc_count => loc_count,
|
205
|
-
:class_length => file_count == 0 ? 0 : loc_count / file_count
|
206
|
-
}
|
207
|
-
end
|
208
|
-
|
209
|
-
#calculates statistics on a given file
|
210
|
-
def file_statistics(filename)
|
211
|
-
line_count = 0; loc_count = 0;
|
212
|
-
|
213
|
-
File.new(filename, 'r').each_line do |line|
|
214
|
-
line.strip!
|
215
|
-
line_count += 1
|
216
|
-
|
217
|
-
# don't count blank lines or comment lines in LOC
|
218
|
-
loc_count += 1 if line.gsub(/[\/\*\s]/i, "").length > 1 && line.match(/^\/\//).nil?
|
219
|
-
end
|
220
|
-
|
221
|
-
{:line_count => line_count, :loc_count => loc_count}
|
222
|
-
end
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
226
|
-
|
227
|
-
# +----------------------+-------+-------+---------+---------+-----+-------+
|
228
|
-
# | Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
|
229
|
-
# +----------------------+-------+-------+---------+---------+-----+-------+
|
230
|
-
# | Controllers | 1479 | 1172 | 26 | 152 | 5 | 5 |
|
231
|
-
# | Helpers | 113 | 47 | 0 | 6 | 0 | 5 |
|
232
|
-
# | Models | 1239 | 869 | 32 | 93 | 2 | 7 |
|
233
|
-
# | Libraries | 609 | 367 | 2 | 54 | 27 | 4 |
|
234
|
-
# | Model specs | 1361 | 989 | 0 | 3 | 0 | 327 |
|
235
|
-
# | Controller specs | 3372 | 2319 | 1 | 73 | 73 | 29 |
|
236
|
-
# | Helper specs | 159 | 148 | 0 | 0 | 0 | 0 |
|
237
|
-
# +----------------------+-------+-------+---------+---------+-----+-------+
|
238
|
-
# | Total | 8332 | 5911 | 61 | 381 | 6 | 13 |
|
239
|
-
# +----------------------+-------+-------+---------+---------+-----+-------+
|
240
|
-
# Code LOC: 2455 Test LOC: 3456 Code to Test Ratio: 1:1.4
|
241
|
-
end
|