netzke-core 0.1.3 → 0.1.4

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.
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>