flex_scaffold 0.1.0 → 0.1.1
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/Rakefile
CHANGED
@@ -382,7 +382,8 @@ class FlexScaffoldGenerator < ScaffoldGenerator
|
|
382
382
|
|
383
383
|
m.directory File.join('app/flex', class_path)
|
384
384
|
m.directory File.join('app/flex' ,"#{plural_name}")
|
385
|
-
|
385
|
+
m.directory File.join('public/swfs', scaffold_name)
|
386
|
+
|
386
387
|
m.complex_template '_index.rmxml', File.join('app/flex', "#{plural_name}", "_#{plural_name}.mxml"),
|
387
388
|
:insert => '_form.rhtml',
|
388
389
|
:sandbox => lambda { create_sandbox },
|
@@ -38,6 +38,7 @@ class FlexScaffoldResourceGenerator < Rails::Generator::NamedBase
|
|
38
38
|
m.directory File.join('test/functional', class_path)
|
39
39
|
|
40
40
|
m.directory File.join('app/views/layout')
|
41
|
+
m.directory File.join('app/views', scaffold_name)
|
41
42
|
m.directory File.join('app/views', "#{plural_name}")
|
42
43
|
|
43
44
|
m.template 'index.rhtml', File.join('app/views', scaffold_name, "index.rhtml")
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: flex_scaffold
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2007-04-
|
6
|
+
version: 0.1.1
|
7
|
+
date: 2007-04-05 00:00:00 +12:00
|
8
8
|
summary: Plugin for scaffolding a Flex view within Rails on REST services.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -38,10 +38,8 @@ files:
|
|
38
38
|
- pkg
|
39
39
|
- public
|
40
40
|
- Rakefile
|
41
|
-
- rdoc
|
42
41
|
- README
|
43
42
|
- tasks
|
44
|
-
- themes34
|
45
43
|
- TODO
|
46
44
|
- uninstall.rb
|
47
45
|
- tasks/compile_swf.rake
|
@@ -82,13 +80,10 @@ files:
|
|
82
80
|
- generators/flex_scaffold_resource/templates/controller.rb
|
83
81
|
- generators/flex_scaffold_resource/templates/index.rhtml
|
84
82
|
- generators/flex_scaffold_resource/templates/layout.rhtml
|
85
|
-
- lib/actionscript_helper.rb
|
86
83
|
- lib/action_view_helper.rb
|
87
84
|
- lib/config.rb
|
88
85
|
- lib/flexobject_view_helper.rb
|
89
86
|
- lib/flex_scaffold_plugin.rb
|
90
|
-
- lib/mtag_helper.rb
|
91
|
-
- lib/mxml_helper.rb
|
92
87
|
- lib/rest_scaffolding.rb
|
93
88
|
- lib/validations.rb
|
94
89
|
test_files: []
|
data/lib/actionscript_helper.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/tag_helper'
|
2
|
-
|
3
|
-
module ActionView
|
4
|
-
module Helpers
|
5
|
-
# Provides functionality for working with ActionScript in your views.
|
6
|
-
#
|
7
|
-
module ActionScriptHelper
|
8
|
-
unless const_defined? :ACTIONSCRIPT_PATH
|
9
|
-
ACTIONSCRIPT_PATH = File.join(File.dirname(__FILE__), 'as')
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# Includes the Action Pack JavaScript libraries inside a single <script>
|
15
|
-
# tag. The function first includes prototype.js and then its core extensions,
|
16
|
-
# (determined by filenames starting with "prototype").
|
17
|
-
# Afterwards, any additional scripts will be included in undefined order.
|
18
|
-
#
|
19
|
-
# Note: The recommended approach is to copy the contents of
|
20
|
-
# lib/action_view/helpers/javascripts/ into your application's
|
21
|
-
# public/javascripts/ directory, and use +javascript_include_tag+ to
|
22
|
-
# create remote <script> links.
|
23
|
-
def define_javascript_functions
|
24
|
-
javascript = '<script type="text/javascript">'
|
25
|
-
|
26
|
-
# load prototype.js and its extensions first
|
27
|
-
prototype_libs = Dir.glob(File.join(JAVASCRIPT_PATH, 'prototype*')).sort.reverse
|
28
|
-
prototype_libs.each do |filename|
|
29
|
-
javascript << "\n" << IO.read(filename)
|
30
|
-
end
|
31
|
-
|
32
|
-
# load other librairies
|
33
|
-
(Dir.glob(File.join(JAVASCRIPT_PATH, '*')) - prototype_libs).each do |filename|
|
34
|
-
javascript << "\n" << IO.read(filename)
|
35
|
-
end
|
36
|
-
javascript << '</script>'
|
37
|
-
end
|
38
|
-
|
39
|
-
# Escape carrier returns and single and double quotes for JavaScript segments.
|
40
|
-
def escape_actionscript(javascript)
|
41
|
-
(javascript || '').gsub('\\','\0\0').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }
|
42
|
-
end
|
43
|
-
|
44
|
-
# Returns a JavaScript tag with the +content+ inside. Example:
|
45
|
-
# javascript_tag "alert('All is good')"
|
46
|
-
#
|
47
|
-
# Returns:
|
48
|
-
#
|
49
|
-
# <script type="text/javascript">
|
50
|
-
# //<![CDATA[
|
51
|
-
# alert('All is good')
|
52
|
-
# //]]>
|
53
|
-
# </script>
|
54
|
-
#
|
55
|
-
# +html_options+ may be a hash of attributes for the <script> tag. Example:
|
56
|
-
# javascript_tag "alert('All is good')", :defer => 'true' # => <script defer="true" type="text/javascript">alert('All is good')</script>
|
57
|
-
def actionscript_tag(content, html_options = {})
|
58
|
-
#content_tag("script", javascript_cdata_section(content), html_options.merge(:type => "text/javascript"))
|
59
|
-
end
|
60
|
-
|
61
|
-
def actionscript_cdata_section(content) #:nodoc:
|
62
|
-
"\n//#{cdata_section("\n#{content}\n//")}\n"
|
63
|
-
end
|
64
|
-
|
65
|
-
protected
|
66
|
-
def options_for_actionscript(options)
|
67
|
-
'{' + options.map {|k, v| "#{k}:#{v}"}.sort.join(', ') + '}'
|
68
|
-
end
|
69
|
-
|
70
|
-
def array_or_string_for_actionscript(option)
|
71
|
-
as_option = if option.kind_of?(Array)
|
72
|
-
"['#{option.join('\',\'')}']"
|
73
|
-
elsif !option.nil?
|
74
|
-
"'#{option}'"
|
75
|
-
end
|
76
|
-
as_option
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
end
|
data/lib/mtag_helper.rb
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'cgi'
|
2
|
-
require 'erb'
|
3
|
-
|
4
|
-
module ActionView
|
5
|
-
module Helpers #:nodoc:
|
6
|
-
# Use these methods to generate Flex <mx:> tags programmatically when you can't use
|
7
|
-
# a Builder. By default, they output XML compliant tags.
|
8
|
-
module TagHelper
|
9
|
-
include ERB::Util
|
10
|
-
|
11
|
-
# Returns an empty XML tag of type +name+ which by default is XML
|
12
|
-
# compliant. Add attributes by passing an attributes
|
13
|
-
# hash to +options+. For attributes with no value like (disabled and
|
14
|
-
# readonly), give it a value of true in the +options+ hash. You can use
|
15
|
-
# symbols or strings for the attribute names.
|
16
|
-
#
|
17
|
-
# tag("TextInput")
|
18
|
-
# # => <mx:TextInput />
|
19
|
-
# tag("TextInput", { :id => 'field_desc', :width => '274', text => '{ image_grid.selectedItem.desc }' })
|
20
|
-
# # => <mx:TextInput width="274" text="{ image_grid.selectedItem.desc }" id="field_desc" />
|
21
|
-
def mx_tag(name, options = nil, open = false)
|
22
|
-
name = name.to_s.camelize
|
23
|
-
"<#{tag_ns}#{name}#{tag_options(options) if options} />"
|
24
|
-
end
|
25
|
-
|
26
|
-
# Returns an XML block tag of type +name+ surrounding the +content+. Add
|
27
|
-
# attributes by passing an attributes hash to +options+. For attributes
|
28
|
-
# with no value, give it a value of true in
|
29
|
-
# the +options+ hash. You can use symbols or strings for the attribute names.
|
30
|
-
#
|
31
|
-
# content_tag('FormItem', content_tag('TextInput'), :id => "image_desc")
|
32
|
-
# # => <mx:FormItem id="image_desc">
|
33
|
-
# <mx:TextInput />
|
34
|
-
# </mx:FormItem>
|
35
|
-
#
|
36
|
-
# Instead of passing the content as an argument, you can also use a block
|
37
|
-
# in which case, you pass your +options+ as the second parameter.
|
38
|
-
#
|
39
|
-
# <% mx_content_tag 'FormItem', :id => "image_desc" do -%>
|
40
|
-
# <mx:TextInput />
|
41
|
-
# <% end -%>
|
42
|
-
# # => <mx:FormItem id="image_desc"><mx:TextInput /></mx:FormItem>
|
43
|
-
#
|
44
|
-
# Alternatively to passed in the tag name as a string, you can pass it in as
|
45
|
-
# a symbol and it will be CamelCased
|
46
|
-
#
|
47
|
-
# content_tag(:form_item, content_tag(:text_input), :id => "image_desc")
|
48
|
-
# # => <mx:FormItem id="image_desc">
|
49
|
-
# <mx:TextInput />
|
50
|
-
# </mx:FormItem>
|
51
|
-
#
|
52
|
-
def mx_content_tag(name, content_or_options_with_block = nil, options = nil, &block)
|
53
|
-
name = name.to_s.camelize
|
54
|
-
if block_given?
|
55
|
-
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
56
|
-
content = capture(&block)
|
57
|
-
concat(mx_content_tag_string(name, content, options), block.binding)
|
58
|
-
else
|
59
|
-
content = content_or_options_with_block
|
60
|
-
mx_content_tag_string(name, content, options)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Returns a CDATA section with the given +content+. CDATA sections
|
65
|
-
# are used to escape blocks of text containing characters which would
|
66
|
-
# otherwise be recognized as markup. CDATA sections begin with the string
|
67
|
-
# <tt><![CDATA[</tt> and end with (and may not contain) the string <tt>]]></tt>.
|
68
|
-
#
|
69
|
-
# cdata_section("private function clearForm():void {field_title.text = '';}")
|
70
|
-
# # => <![CDATA[
|
71
|
-
# private function clearForm():void {
|
72
|
-
# field_title.text = '';
|
73
|
-
# }
|
74
|
-
# ]]>
|
75
|
-
def cdata_section(content)
|
76
|
-
"<![CDATA[#{content}]]>"
|
77
|
-
end
|
78
|
-
|
79
|
-
# Returns the escaped +xml+ without affecting existing escaped entities.
|
80
|
-
#
|
81
|
-
# escape_once("1 > 2 & 3")
|
82
|
-
# # => "1 < 2 & 3"
|
83
|
-
def escape_once(html)
|
84
|
-
fix_double_escape(html_escape(html.to_s))
|
85
|
-
end
|
86
|
-
|
87
|
-
private
|
88
|
-
def mx_content_tag_string(name, content, options)
|
89
|
-
tag_options = options ? tag_options(options) : ""
|
90
|
-
"<#{tag_ns}#{name}#{tag_options}>#{content}</#{name}>"
|
91
|
-
end
|
92
|
-
|
93
|
-
def tag_ns
|
94
|
-
"mx:"
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
data/lib/mxml_helper.rb
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/mtag_helper'
|
2
|
-
|
3
|
-
module ActionView
|
4
|
-
module Helpers
|
5
|
-
# Provides functionality for working with MXML in your views.
|
6
|
-
#
|
7
|
-
# If you wish to use this library and its helpers (ActionView::Helpers::MxmlHelper),
|
8
|
-
# you must:
|
9
|
-
#
|
10
|
-
# * Use <tt>flex_scaffold :model</tt> in your controller.
|
11
|
-
|
12
|
-
module MxmlHelper
|
13
|
-
|
14
|
-
# Returns the ActionScript that link to the model to the server as a REST
|
15
|
-
# +resource+
|
16
|
-
#
|
17
|
-
# Example:
|
18
|
-
# <mx:Script>
|
19
|
-
# <![CDATA[
|
20
|
-
#
|
21
|
-
# private function clearForm():void {
|
22
|
-
# field_name.text = '';
|
23
|
-
# field_title.text = '';
|
24
|
-
# field_size.text = '';
|
25
|
-
# field_uri.text = '';
|
26
|
-
# field_desc.text = '';
|
27
|
-
# }
|
28
|
-
#
|
29
|
-
# public function deletegraphics(id:String):void {
|
30
|
-
# deletegraphic.url = "/graphics/" + id + ".xml";
|
31
|
-
# deletegraphic.send({_method: "DELETE"});
|
32
|
-
# }
|
33
|
-
#
|
34
|
-
# private function sendgraphicUpdate():void {
|
35
|
-
#
|
36
|
-
# var params:Object = new Object();
|
37
|
-
# params['_method'] = "PUT";
|
38
|
-
# params['graphic[name]'] = field_name.text;
|
39
|
-
# params['graphic[title]'] = field_title.text;
|
40
|
-
# params['graphic[size]'] = field_size.text;
|
41
|
-
# params['graphic[uri]'] = field_uri.text;
|
42
|
-
# params['graphic[desc]'] = field_desc.text;
|
43
|
-
#
|
44
|
-
# updategraphic.url = "/graphics/" + graphic_grid.selectedItem.id + ".xml";
|
45
|
-
# updategraphic.send(params);
|
46
|
-
# }
|
47
|
-
#
|
48
|
-
# ]]>
|
49
|
-
# </mx:Script>
|
50
|
-
def mx_resource(model, *args)
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
# Returns the mx HTTPSService defined for a REST service call to rails
|
55
|
-
#
|
56
|
-
# Example:
|
57
|
-
# <mx:HTTPService id="listimage" url="/images.xml" useProxy="false" method="GET"/>
|
58
|
-
# <mx:HTTPService id="updateimage" useProxy="false" method="POST" result="listimage.send()"/>
|
59
|
-
# <mx:HTTPService id="deleteimage" useProxy="false" method="POST" result="listimage.send()"/>
|
60
|
-
# <mx:HTTPService id="createimage" url="/images.xml" useProxy="false" method="POST" result="listimage.send()"
|
61
|
-
# contentType="application/xml">
|
62
|
-
# <mx:request xmlns="">
|
63
|
-
# <image>
|
64
|
-
# <title>{field_title.text}</title>
|
65
|
-
# <filename>{field_filename.text}</filename>
|
66
|
-
# <desc>{field_desc.text}</desc>
|
67
|
-
# <size>{field_size.text}</size>
|
68
|
-
# </image>
|
69
|
-
# </mx:request>
|
70
|
-
# </mx:HTTPService>
|
71
|
-
|
72
|
-
def mx_service
|
73
|
-
|
74
|
-
end
|
75
|
-
|
76
|
-
# Returns the application mxml tag
|
77
|
-
#
|
78
|
-
# Example:
|
79
|
-
# <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
|
80
|
-
# layout="absolute"
|
81
|
-
# width="100%"
|
82
|
-
# height="100%"
|
83
|
-
# creationComplete="{list<%= singular_name %>.send();}"
|
84
|
-
# xmlns:egenial="*"
|
85
|
-
# backgroundColor="#808080"
|
86
|
-
# backgroundGradientColors="[#808080, #ffffff]">
|
87
|
-
|
88
|
-
def mx_application(name, *args, &block)
|
89
|
-
|
90
|
-
end
|
91
|
-
|
92
|
-
# Returns the validators mxml tag
|
93
|
-
#
|
94
|
-
# Example:
|
95
|
-
# <mx:StringValidator source="{field_create_title}" property="text"
|
96
|
-
# tooShortError="This string is shorter than the minimum allowed length of 4."
|
97
|
-
# tooLongError="This string is longer than the maximum allowed length of 255."
|
98
|
-
# minLength="4" maxLength="255"
|
99
|
-
# trigger="{btn_add_create}" triggerEvent="click" />
|
100
|
-
|
101
|
-
def mx_validators
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|