netzke-core 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ v0.1.4
2
+ Helpers added to facilitate ExtJS/netzke.js inclusion
3
+ The route defined for netzke_controller
4
+ netzke.html.erb-layout is not needed anymore, so not produced by the generator
5
+ Now compliant with Rails' forgery protection
6
+
1
7
  v0.1.3
2
8
  Generators fixed
3
9
 
data/Manifest CHANGED
@@ -2,7 +2,6 @@ CHANGELOG
2
2
  generators/netzke_core/netzke_core_generator.rb
3
3
  generators/netzke_core/templates/create_netzke_layouts.rb
4
4
  generators/netzke_core/templates/create_netzke_preferences.rb
5
- generators/netzke_core/templates/netzke.html.erb
6
5
  generators/netzke_core/USAGE
7
6
  init.rb
8
7
  install.rb
@@ -10,10 +9,12 @@ javascripts/core.js
10
9
  lib/app/controllers/netzke_controller.rb
11
10
  lib/app/models/netzke_layout.rb
12
11
  lib/app/models/netzke_preference.rb
12
+ lib/netzke/action_view_ext.rb
13
13
  lib/netzke/base.rb
14
14
  lib/netzke/controller_extensions.rb
15
15
  lib/netzke/core_ext.rb
16
16
  lib/netzke/js_class_builder.rb
17
+ lib/netzke/routing.rb
17
18
  lib/netzke-core.rb
18
19
  lib/vendor/facets/hash/recursive_merge.rb
19
20
  LICENSE
@@ -2,10 +2,6 @@
2
2
  class NetzkeCoreGenerator < Rails::Generator::Base
3
3
  def manifest
4
4
  record do |m|
5
- # m.directory "public/javascripts/netzke"
6
- # m.file 'netzke.js', "public/javascripts/netzke/netzke.js"
7
- m.file 'netzke.html.erb', "app/views/layouts/netzke.html.erb"
8
-
9
5
  # FIXME: how do we avoid getting the same migration timestamps?
10
6
  # m.migration_template 'create_netzke_preferences.rb', "db/migrate", {:migration_file_name => "create_netzke_preferences"}
11
7
  # m.migration_template 'create_netzke_layouts.rb', "db/migrate", {:migration_file_name => "create_netzke_layouts"}
@@ -3,6 +3,11 @@ Ext.componentCache = {};
3
3
 
4
4
  Ext.namespace('Ext.netzke');
5
5
 
6
+ // to comply with Rails' forgery protection
7
+ Ext.Ajax.extraParams = {
8
+ 'authenticity_token': Ext.authenticityToken
9
+ };
10
+
6
11
  // helper method to do multiple Ext.apply's
7
12
  Ext.chainApply = function(objectArray){
8
13
  var res = {};
@@ -1,12 +1,15 @@
1
1
  # NetzkeCore
2
2
  require 'netzke/js_class_builder'
3
3
  require 'netzke/base'
4
- require 'netzke/core_ext'
4
+ require 'netzke/action_view_ext'
5
5
  require 'netzke/controller_extensions'
6
+ require 'netzke/core_ext'
7
+ require 'netzke/routing'
6
8
 
7
9
  # Vendor
8
10
  require 'vendor/facets/hash/recursive_merge'
9
11
 
12
+ # Load models and controllers from lib/app
10
13
  %w{ models controllers }.each do |dir|
11
14
  path = File.join(File.dirname(__FILE__), 'app', dir)
12
15
  $LOAD_PATH << path
@@ -14,12 +17,19 @@ require 'vendor/facets/hash/recursive_merge'
14
17
  ActiveSupport::Dependencies.load_once_paths.delete(path)
15
18
  end
16
19
 
20
+ # Provide controllers with netzke_widget class method
17
21
  ActionController::Base.class_eval do
18
22
  include Netzke::ControllerExtensions
19
23
  end
20
24
 
21
- # Make this plugin reloadable for easier development
25
+ # Make this plugin auto-reloaded for easier development
22
26
  ActiveSupport::Dependencies.load_once_paths.delete(File.join(File.dirname(__FILE__)))
23
27
 
24
28
  # Include the javascript
25
- Netzke::Base.config[:javascripts] << "#{File.dirname(__FILE__)}/../javascripts/core.js"
29
+ Netzke::Base.config[:javascripts] << "#{File.dirname(__FILE__)}/../javascripts/core.js"
30
+
31
+ # Include the route to netzke controller
32
+ ActionController::Routing::RouteSet::Mapper.send :include, Netzke::Routing::MapperExtensions
33
+
34
+ # Helpers to be put into layouts
35
+ ActionView::Base.send :include, Netzke::ActionViewExt
@@ -0,0 +1,25 @@
1
+ module Netzke
2
+ module ActionViewExt
3
+
4
+ def netzke_js_include
5
+ res = ""
6
+
7
+ if ENV['RAILS_ENV'] == 'development'
8
+ res << javascript_include_tag("/extjs/adapter/ext/ext-base.js", "/extjs/ext-all-debug.js")
9
+ else
10
+ res << javascript_include_tag("/extjs/build/adapter/ext/ext-base-min.js", "/extjs/ext-all.js")
11
+ end
12
+ res << javascript_tag( "Ext.authenticityToken = '#{form_authenticity_token}'") # forgery protection
13
+ res << javascript_include_tag("/netzke/netzke.js")
14
+
15
+ res
16
+ end
17
+
18
+ def netzke_css_include(theme_name = :default)
19
+ res = stylesheet_link_tag("/extjs/resources/css/ext-all.css")
20
+ res << stylesheet_link_tag("/extjs/resources/css/xtheme-#{theme_name}.css") unless theme_name == :default
21
+ res
22
+ end
23
+ end
24
+ end
25
+
@@ -1,6 +1,10 @@
1
1
  require 'json'
2
+
2
3
  module Netzke
3
4
  class Base
5
+ # client-side code (generates JS-classes of the widgets)
6
+ include Netzke::JsClassBuilder
7
+
4
8
  # Global Netzke configuration
5
9
  def self.config
6
10
  @@config ||= {
@@ -27,9 +31,6 @@ module Netzke
27
31
  end
28
32
  end
29
33
 
30
- # client-side code (generates JS-classes of the widgets)
31
- include Netzke::JsClassBuilder
32
-
33
34
  attr_accessor :config, :server_confg, :parent, :logger, :id_name, :permissions
34
35
  attr_reader :pref
35
36
 
@@ -77,16 +77,24 @@ module Netzke
77
77
  # add controller action which will render a simple HTML page containing the widget
78
78
  define_method("#{name}_test") do
79
79
  @widget_name = name
80
- render :inline => %Q(
81
- <script type="text/javascript" charset="utf-8">
82
- <%= #{name}_class_definition %>
83
- Ext.onReady(function(){
84
- <%= #{name}_widget_instance %>
85
- #{name.to_js}.render("#{name.to_s.split('_').join('-')}");
86
- })
87
- </script>
88
- <div id="#{name.to_s.split('_').join('-')}"></div>
89
- ), :layout => "netzke"
80
+ render :inline => <<-HTML
81
+ <head>
82
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
83
+ <title><%= @widget_name %></title>
84
+ <%= netzke_js_include %>
85
+ <%= netzke_css_include %>
86
+ <script type="text/javascript" charset="utf-8">
87
+ <%= #{name}_class_definition %>
88
+ Ext.onReady(function(){
89
+ <%= #{name}_widget_instance %>
90
+ #{name.to_js}.render("#{name.to_s.split('_').join('-')}");
91
+ })
92
+ </script>
93
+ </head>
94
+ <body>
95
+ <div id="#{name.to_s.split('_').join('-')}"></div>
96
+ </body>
97
+ HTML
90
98
  end
91
99
  end
92
100
  end
@@ -0,0 +1,9 @@
1
+ module Netzke
2
+ module Routing
3
+ module MapperExtensions
4
+ def netzke
5
+ @set.add_route("/netzke/:action.:format", {:controller => "netzke"})
6
+ end
7
+ end
8
+ end
9
+ end
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{netzke-core}
5
- s.version = "0.1.3"
5
+ s.version = "0.1.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Sergei Kozlov"]
9
9
  s.date = %q{2009-01-02}
10
10
  s.description = %q{Build ExtJS/Rails widgets with minimum effort}
11
11
  s.email = %q{sergei@writelesscode.com}
12
- s.extra_rdoc_files = ["CHANGELOG", "lib/app/controllers/netzke_controller.rb", "lib/app/models/netzke_layout.rb", "lib/app/models/netzke_preference.rb", "lib/netzke/base.rb", "lib/netzke/controller_extensions.rb", "lib/netzke/core_ext.rb", "lib/netzke/js_class_builder.rb", "lib/netzke-core.rb", "lib/vendor/facets/hash/recursive_merge.rb", "LICENSE", "README.mdown", "tasks/netzke_core_tasks.rake"]
13
- s.files = ["CHANGELOG", "generators/netzke_core/netzke_core_generator.rb", "generators/netzke_core/templates/create_netzke_layouts.rb", "generators/netzke_core/templates/create_netzke_preferences.rb", "generators/netzke_core/templates/netzke.html.erb", "generators/netzke_core/USAGE", "init.rb", "install.rb", "javascripts/core.js", "lib/app/controllers/netzke_controller.rb", "lib/app/models/netzke_layout.rb", "lib/app/models/netzke_preference.rb", "lib/netzke/base.rb", "lib/netzke/controller_extensions.rb", "lib/netzke/core_ext.rb", "lib/netzke/js_class_builder.rb", "lib/netzke-core.rb", "lib/vendor/facets/hash/recursive_merge.rb", "LICENSE", "Manifest", "netzke-core.gemspec", "Rakefile", "README.mdown", "tasks/netzke_core_tasks.rake", "test/app_root/app/controllers/application.rb", "test/app_root/config/boot.rb", "test/app_root/config/database.yml", "test/app_root/config/environment.rb", "test/app_root/config/environments/in_memory.rb", "test/app_root/config/environments/mysql.rb", "test/app_root/config/environments/postgresql.rb", "test/app_root/config/environments/sqlite.rb", "test/app_root/config/environments/sqlite3.rb", "test/app_root/config/routes.rb", "test/app_root/script/console", "test/core_ext_test.rb", "test/netzke_core_test.rb", "test/test_helper.rb", "uninstall.rb"]
12
+ s.extra_rdoc_files = ["CHANGELOG", "lib/app/controllers/netzke_controller.rb", "lib/app/models/netzke_layout.rb", "lib/app/models/netzke_preference.rb", "lib/netzke/action_view_ext.rb", "lib/netzke/base.rb", "lib/netzke/controller_extensions.rb", "lib/netzke/core_ext.rb", "lib/netzke/js_class_builder.rb", "lib/netzke/routing.rb", "lib/netzke-core.rb", "lib/vendor/facets/hash/recursive_merge.rb", "LICENSE", "README.mdown", "tasks/netzke_core_tasks.rake"]
13
+ s.files = ["CHANGELOG", "generators/netzke_core/netzke_core_generator.rb", "generators/netzke_core/templates/create_netzke_layouts.rb", "generators/netzke_core/templates/create_netzke_preferences.rb", "generators/netzke_core/USAGE", "init.rb", "install.rb", "javascripts/core.js", "lib/app/controllers/netzke_controller.rb", "lib/app/models/netzke_layout.rb", "lib/app/models/netzke_preference.rb", "lib/netzke/action_view_ext.rb", "lib/netzke/base.rb", "lib/netzke/controller_extensions.rb", "lib/netzke/core_ext.rb", "lib/netzke/js_class_builder.rb", "lib/netzke/routing.rb", "lib/netzke-core.rb", "lib/vendor/facets/hash/recursive_merge.rb", "LICENSE", "Manifest", "netzke-core.gemspec", "Rakefile", "README.mdown", "tasks/netzke_core_tasks.rake", "test/app_root/app/controllers/application.rb", "test/app_root/config/boot.rb", "test/app_root/config/database.yml", "test/app_root/config/environment.rb", "test/app_root/config/environments/in_memory.rb", "test/app_root/config/environments/mysql.rb", "test/app_root/config/environments/postgresql.rb", "test/app_root/config/environments/sqlite.rb", "test/app_root/config/environments/sqlite3.rb", "test/app_root/config/routes.rb", "test/app_root/script/console", "test/core_ext_test.rb", "test/netzke_core_test.rb", "test/test_helper.rb", "uninstall.rb"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://writelesscode.com}
16
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Netzke-core", "--main", "README.mdown"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netzke-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergei Kozlov
@@ -24,10 +24,12 @@ extra_rdoc_files:
24
24
  - lib/app/controllers/netzke_controller.rb
25
25
  - lib/app/models/netzke_layout.rb
26
26
  - lib/app/models/netzke_preference.rb
27
+ - lib/netzke/action_view_ext.rb
27
28
  - lib/netzke/base.rb
28
29
  - lib/netzke/controller_extensions.rb
29
30
  - lib/netzke/core_ext.rb
30
31
  - lib/netzke/js_class_builder.rb
32
+ - lib/netzke/routing.rb
31
33
  - lib/netzke-core.rb
32
34
  - lib/vendor/facets/hash/recursive_merge.rb
33
35
  - LICENSE
@@ -38,7 +40,6 @@ files:
38
40
  - generators/netzke_core/netzke_core_generator.rb
39
41
  - generators/netzke_core/templates/create_netzke_layouts.rb
40
42
  - generators/netzke_core/templates/create_netzke_preferences.rb
41
- - generators/netzke_core/templates/netzke.html.erb
42
43
  - generators/netzke_core/USAGE
43
44
  - init.rb
44
45
  - install.rb
@@ -46,10 +47,12 @@ files:
46
47
  - lib/app/controllers/netzke_controller.rb
47
48
  - lib/app/models/netzke_layout.rb
48
49
  - lib/app/models/netzke_preference.rb
50
+ - lib/netzke/action_view_ext.rb
49
51
  - lib/netzke/base.rb
50
52
  - lib/netzke/controller_extensions.rb
51
53
  - lib/netzke/core_ext.rb
52
54
  - lib/netzke/js_class_builder.rb
55
+ - lib/netzke/routing.rb
53
56
  - lib/netzke-core.rb
54
57
  - lib/vendor/facets/hash/recursive_merge.rb
55
58
  - LICENSE
@@ -1,10 +0,0 @@
1
- <head>
2
- <meta http-equiv="Content-type" content="text/html; charset=utf-8">
3
- <title><%= @widget_name %></title>
4
- <%= javascript_include_tag("/extjs/adapter/ext/ext-base.js", "/extjs/ext-all-debug.js") %>
5
- <%= javascript_include_tag("/netzke/netzke.js") %>
6
- <%= stylesheet_link_tag("/extjs/resources/css/ext-all.css") %>
7
- </head>
8
- <body id="">
9
- <%= yield %>
10
- </body>