resty-generators 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -25,8 +25,14 @@ module Resty
25
25
  template 'EntryPoint.java', File.join(java_root, base_package.gsub(/\./, "/"), "#{application_name}.java")
26
26
  end
27
27
 
28
- def create_initializer
28
+ def create_initializers
29
29
  template 'initializer.rb', File.join('config', 'initializers', 'resty.rb')
30
+ template 'monkey_patch.rb', File.join('config', 'initializers', 'resty_monkey_patch.rb')
31
+ end
32
+
33
+ def create_html
34
+ template 'page.html', File.join('public', "#{application_name.underscore}.html")
35
+ template 'empty.css', File.join('public', 'stylesheets', "#{application_name.underscore}.css")
30
36
  end
31
37
 
32
38
  def base_package
@@ -1,16 +1,30 @@
1
+ #-*- mode: ruby -*-
1
2
  jar('org.fusesource.restygwt:restygwt', '1.1').scope = :provided
2
- plugin('org.codehaus.mojo.gwt-maven-plugin', '2.1.0') do |gwt|
3
- gwt.with({ :logLevel => "INFO",
3
+ jar('javax.ws.rs:jsr311-api', '1.1').scope :provided
4
+ jar('com.google.gwt:gwt-user', '2.2.0').scope :provided
5
+
6
+ plugin('org.codehaus.mojo:gwt-maven-plugin', '2.2.0') do |gwt|
7
+ gwt.with({ :warSourceDirectory => "${basedir}/public",
8
+ :webXml => "${basedir}/public/WEB-INF/web.xml",
9
+ :webappDirectory => "${basedir}/public",
10
+ :hostedWebapp => "${basedir}/public",
11
+ :inplace => true,
12
+ :logLevel => "INFO",
4
13
  :style => "DETAILED",
5
14
  :treeLogger => true,
6
15
  :extraJvmArgs => "-Xmx512m",
7
- :runTarget => "<%= application_name.underscore %>/<%= application_name.underscore %>.html",
16
+ :runTarget => "<%= application_name.underscore %>.html",
8
17
  :includes => "**/<%= application_name %>GWTTestSuite.java"
9
18
  })
10
- gwt.execute.goals << ["clean", "compile", "test"]
19
+ gwt.executions.goals << ["clean", "compile", "test"]
11
20
  end
21
+ plugin(:bundler, "${jruby.plugins.version}").execution.goals << :install
22
+ plugin(:rails3).in_phase("initialize").execute_goal(:pom).with :force => true
23
+
12
24
  #-- Macs need the -d32 -XstartOnFirstThread jvm options -->
13
25
  profile("mac") do |mac|
14
- mac.activation << "<os><family>mac</family></os>"
15
- plugin('org.codehaus.mojo.gwt-maven-plugin').with(:extraJvmArgs => "-d32 -XstartOnFirstThread -Xmx512m")
26
+ mac.activation.os.family "mac"
27
+ mac.plugin('org.codehaus.mojo:gwt-maven-plugin').with(:extraJvmArgs => "-d32 -XstartOnFirstThread -Xmx512m")
16
28
  end
29
+
30
+ # vim: syntax=Ruby
File without changes
@@ -1,3 +1,28 @@
1
1
  require 'resty/child_path'
2
2
 
3
3
  Rails.application.config.middleware.use Resty::ChildPath, '<%= application_name.underscore %>'
4
+
5
+ ActiveRecord::Base.include_root_in_json = false
6
+
7
+ # get the time/date format right ;-)
8
+ class DateTime
9
+ def as_json(options = nil)
10
+ strftime('%Y-%m-%dT%H:%M:%S.%s%z')
11
+ end
12
+ end
13
+ class ActiveSupport::TimeWithZone
14
+ def as_json(options = nil)
15
+ strftime('%Y-%m-%dT%H:%M:%S.%s%z')
16
+ end
17
+ end
18
+ class Date
19
+ def as_json(options = nil)
20
+ strftime('%Y-%m-%dT%H:%M:%S.%s%z')
21
+ end
22
+ end
23
+
24
+ class Time
25
+ def as_json(options = nil)
26
+ strftime('%Y-%m-%dT%H:%M:%S.%s%z')
27
+ end
28
+ end
@@ -5,6 +5,6 @@
5
5
 
6
6
  <entry-point class='<%= base_package %>.<%= application_name %>' />
7
7
 
8
- <stylesheet src='<%= application_name.underscore %>.css' />
8
+ <stylesheet src='../stylesheets/<%= application_name.underscore %>.css' />
9
9
 
10
10
  </module>
@@ -0,0 +1,47 @@
1
+ require 'action_dispatch/http/request'
2
+ require 'active_support/core_ext/hash/indifferent_access'
3
+
4
+ module ActionDispatch
5
+ class ParamsParser
6
+
7
+ alias :call_old :call
8
+ def call(env)
9
+ request = Request.new(env)
10
+ mime_type = content_type_from_legacy_post_data_format_header(env) ||
11
+ request.content_mime_type
12
+
13
+ case mime_type
14
+ when Mime::JSON
15
+ data = ActiveSupport::JSON.decode(request.body)
16
+ request.body.rewind if request.body.respond_to?(:rewind)
17
+ data = {:_json => data} unless data.is_a?(Hash)
18
+ env["action_dispatch.request.request_parameters"] = {:json => data}.with_indifferent_access
19
+
20
+ @app.call(env)
21
+ else
22
+ call_old(env)
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ module ActionController
29
+ class Base
30
+ def from_java(map)
31
+ result = map.dup
32
+ map.each do |k,v|
33
+ result.delete(k)
34
+ result[k.underscore] = v.is_a?(Hash) ? from_java(v) : v
35
+ end
36
+ result
37
+ end
38
+ end
39
+ end
40
+
41
+ ::ActionController::Base.send(:before_filter) do
42
+ json = params.delete(:json)
43
+ if json
44
+ params[params[:controller].singularize] = from_java(json)
45
+ end
46
+ true
47
+ end
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5
+ <!-- -->
6
+ <!-- Any title is fine -->
7
+ <!-- -->
8
+ <title><%= application_name %></title>
9
+
10
+ <!-- -->
11
+ <!-- This script loads your compiled module. -->
12
+ <!-- If you add any GWT meta tags, they must -->
13
+ <!-- be added before this line. -->
14
+ <!-- -->
15
+ <script type="text/javascript" language="javascript" src="<%= application_name.underscore %>/<%= application_name.underscore %>.nocache.js"></script>
16
+ </head>
17
+
18
+ <!-- -->
19
+ <!-- The body can have arbitrary html, or -->
20
+ <!-- you can leave the body empty if you want -->
21
+ <!-- to create a completely dynamic UI. -->
22
+ <!-- -->
23
+ <body>
24
+
25
+ <!-- OPTIONAL: include this if you want history support -->
26
+ <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
27
+
28
+ </body>
29
+ </html>
@@ -18,30 +18,30 @@ public interface <%= controller_class_name %>Controller extends RestService {
18
18
  <% actions.each do |action|
19
19
  case action_map[action]
20
20
  when :get_all -%>
21
- @GET @Path('.json')
21
+ @GET @Path("/<%= table_name %>.json")
22
22
  void <%= action %>(MethodCallback<List<<%= class_name %>>> callback);
23
23
 
24
- // @GET @Path('.json')
24
+ // @GET @Path("/<%= table_name %>.json")
25
25
  // void <%= action %>(MethodCallback<List<<%= class_name %>>> callback, @QueryParam("limit") int limit, @QueryParam("offset") int offset);
26
26
  //
27
27
  <% when :get_single -%>
28
- @GET<% unless options[:singleton] -%> @Path("/{id}.json")<% end %>
28
+ @GET<% unless options[:singleton] -%> @Path("/<%= table_name %>/{id}.json")<% end %>
29
29
  void <%= action %>(<% unless options[:singleton] -%>@PathParam("id") int id, <% end -%>MethodCallback<<%= class_name %>> callback);
30
30
 
31
31
  <% when :post -%>
32
- @POST @Path('.json')
32
+ @POST @Path("/<%= table_name %>.json")
33
33
  void <%= action %>(<%= class_name %> value, MethodCallback<<%= class_name %>> callback);
34
34
 
35
35
  <% when :put -%>
36
- @PUT<% unless options[:singleton] -%> @Path("/{id}.json")<% end %>
36
+ @PUT<% unless options[:singleton] -%> @Path("/<%= table_name %>/{id}.json")<% end %>
37
37
  void <%= action %>(<% unless options[:singleton] -%>@PathParam("id") @Attribute("id") <% end -%><%= class_name %> value, MethodCallback<<%= class_name %>> callback);
38
38
 
39
39
  <% when :delete -%>
40
- @DELETE @Path("/{id}.json")
40
+ @DELETE @Path("/<%= table_name %>/{id}.json")
41
41
  void <%= action %>(@PathParam("id") @Attribute("id") <%= class_name %> value, MethodCallback<Void> callback);
42
42
 
43
43
  <% else -%>
44
- @GET @Path("/<%= action %>.json")
44
+ @GET @Path("/<%= table_name %>/<%= action %>.json")
45
45
  void <%= action %>(MethodCallback<Void> callback);
46
46
 
47
47
  <% end
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resty-generators
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
6
10
  platform: ruby
7
11
  authors:
8
12
  - mkristian
@@ -10,53 +14,91 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-03-01 00:00:00 +05:30
17
+ date: 2011-04-05 00:00:00 +05:30
14
18
  default_executable:
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
17
- name: rails
21
+ name: ixtlan-core
18
22
  prerelease: false
19
23
  requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
24
  requirements:
22
- - - "="
25
+ - - ">="
23
26
  - !ruby/object:Gem::Version
24
- version: 3.0.1
25
- type: :development
27
+ segments:
28
+ - 0
29
+ - 2
30
+ - 0
31
+ version: 0.2.0
32
+ - - <
33
+ - !ruby/object:Gem::Version
34
+ segments:
35
+ - 0
36
+ - 2
37
+ - 99999
38
+ version: 0.2.99999
39
+ type: :runtime
26
40
  version_requirements: *id001
27
41
  - !ruby/object:Gem::Dependency
28
- name: rspec
42
+ name: rails
29
43
  prerelease: false
30
44
  requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
45
  requirements:
33
46
  - - "="
34
47
  - !ruby/object:Gem::Version
35
- version: 2.0.1
48
+ segments:
49
+ - 3
50
+ - 0
51
+ - 5
52
+ version: 3.0.5
36
53
  type: :development
37
54
  version_requirements: *id002
38
55
  - !ruby/object:Gem::Dependency
39
56
  name: cucumber
40
57
  prerelease: false
41
58
  requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
59
  requirements:
44
60
  - - "="
45
61
  - !ruby/object:Gem::Version
46
- version: 0.9.4
62
+ segments:
63
+ - 0
64
+ - 10
65
+ - 2
66
+ version: 0.10.2
47
67
  type: :development
48
68
  version_requirements: *id003
49
69
  - !ruby/object:Gem::Dependency
50
70
  name: rake
51
71
  prerelease: false
52
72
  requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
73
  requirements:
55
74
  - - "="
56
75
  - !ruby/object:Gem::Version
76
+ segments:
77
+ - 0
78
+ - 8
79
+ - 7
57
80
  version: 0.8.7
58
81
  type: :development
59
82
  version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: ruby-maven
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "="
89
+ - !ruby/object:Gem::Version
90
+ segments:
91
+ - 0
92
+ - 8
93
+ - 3
94
+ - 0
95
+ - 2
96
+ - 0
97
+ - 26
98
+ - 0
99
+ version: 0.8.3.0.2.0.26.0
100
+ type: :development
101
+ version_requirements: *id005
60
102
  description: simple authorization framework for rails controllers
61
103
  email:
62
104
  - m.kristian@web.de
@@ -77,6 +119,9 @@ files:
77
119
  - lib/generators/resty/templates/Model.java
78
120
  - lib/generators/resty/setup/setup_generator.rb
79
121
  - lib/generators/resty/setup/templates/Mavenfile
122
+ - lib/generators/resty/setup/templates/page.html
123
+ - lib/generators/resty/setup/templates/monkey_patch.rb
124
+ - lib/generators/resty/setup/templates/empty.css
80
125
  - lib/generators/resty/setup/templates/module.gwt.xml
81
126
  - lib/generators/resty/setup/templates/EntryPoint.java
82
127
  - lib/generators/resty/setup/templates/initializer.rb
@@ -93,21 +138,23 @@ rdoc_options:
93
138
  require_paths:
94
139
  - lib
95
140
  required_ruby_version: !ruby/object:Gem::Requirement
96
- none: false
97
141
  requirements:
98
142
  - - ">="
99
143
  - !ruby/object:Gem::Version
144
+ segments:
145
+ - 0
100
146
  version: "0"
101
147
  required_rubygems_version: !ruby/object:Gem::Requirement
102
- none: false
103
148
  requirements:
104
149
  - - ">="
105
150
  - !ruby/object:Gem::Version
151
+ segments:
152
+ - 0
106
153
  version: "0"
107
154
  requirements: []
108
155
 
109
156
  rubyforge_project:
110
- rubygems_version: 1.5.1
157
+ rubygems_version: 1.3.6
111
158
  signing_key:
112
159
  specification_version: 3
113
160
  summary: guard your controller actions