dima-restfulx 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -33,7 +33,7 @@ Here's some of the things you can do with *RestfulX*:
33
33
 
34
34
  For details on how to get started with the RestfulX framework refer to:
35
35
 
36
- http://github.com/dima/restfulx/wikis/home
36
+ http://restfulx.org
37
37
 
38
38
  == Getting Involved
39
39
 
@@ -21,10 +21,6 @@
21
21
  <integer>299</integer>
22
22
  <key>metaData</key>
23
23
  <dict/>
24
- <key>openDocuments</key>
25
- <array>
26
- <string>app/flex/<%= project_name %>.mxml</string>
27
- </array>
28
24
  <key>shellVariables</key>
29
25
  <array>
30
26
  <dict>
@@ -43,10 +39,34 @@
43
39
  <key>variable</key>
44
40
  <string>TM_FLEX_OUTPUT</string>
45
41
  </dict>
42
+ <dict>
43
+ <key>enabled</key>
44
+ <true/>
45
+ <key>value</key>
46
+ <string>app/flex</string>
47
+ <key>variable</key>
48
+ <string>TM_AS3_USUAL_SRC_DIRS</string>
49
+ </dict>
50
+ <dict>
51
+ <key>enabled</key>
52
+ <true/>
53
+ <key>value</key>
54
+ <string>/Users/Dima/Projects/dev/restfulx_framework/framework/src</string>
55
+ <key>variable</key>
56
+ <string>TM_AS3_LIB_SRC_DIRS</string>
57
+ </dict>
58
+ <dict>
59
+ <key>enabled</key>
60
+ <true/>
61
+ <key>value</key>
62
+ <string><%= use_air ? 'air' : 'flex' %></string>
63
+ <key>variable</key>
64
+ <string>TM_FLEX_RUNTIME</string>
65
+ </dict>
46
66
  </array>
47
- <key>showFileHierarchyDrawer</key>
48
- <false/>
49
- <key>windowFrame</key>
50
- <string>{{5, 15}, {1073, 860}}</string>
67
+ <key>showFileHierarchyDrawer</key>
68
+ <false/>
69
+ <key>windowFrame</key>
70
+ <string>{{53, 14}, {1221, 864}}</string>
51
71
  </dict>
52
- </plist>
72
+ </plist>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" label="<%= class_name %>"
3
- xmlns:rcomponents="org.restfulx.components.*">
3
+ xmlns:rx="org.restfulx.components.rx.*">
4
4
  <mx:Script><![CDATA[
5
5
  import org.restfulx.Rx;
6
6
  import org.restfulx.utils.RxUtils;
@@ -121,7 +121,7 @@
121
121
  <% elsif attribute.type == :text -%>
122
122
  <mx:TextArea id="<%= attribute.flex_name %>TextArea" width="100%" height="200" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
123
123
  <% elsif attribute.type == :datetime || attribute.type == :time -%>
124
- <rcomponents:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
124
+ <rx:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
125
125
  <% elsif attribute.type == :date -%>
126
126
  <mx:DateField id="<%= attribute.flex_name %>DateField" selectedDate="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
127
127
  <% else -%>
@@ -5,8 +5,8 @@
5
5
  module RestfulX
6
6
 
7
7
  # :stopdoc:
8
- VERSION = '1.2.0'
9
- FRAMEWORK_VERSION = '1.2.0'
8
+ VERSION = '1.2.1'
9
+ FRAMEWORK_VERSION = '1.2.1'
10
10
  LIB_DIR = File.join(File.dirname(__FILE__), 'restfulx/')
11
11
  # :startdoc:
12
12
 
@@ -114,4 +114,8 @@ elsif defined?(ActionController::Base)
114
114
 
115
115
  # temporarily disable forgery protection site-wise
116
116
  ActionController::Base.allow_forgery_protection = false
117
+ elsif defined?(DataMapper)
118
+ require RestfulX::LIB_DIR + 'datamapper_foo'
119
+ elsif defined?(ActiveRecord::Base)
120
+ require RestfulX::LIB_DIR + 'active_foo'
117
121
  end
@@ -1,9 +1,54 @@
1
- require 'builder'
2
- require RestfulX::LIB_DIR + 'configuration'
3
-
4
1
  # Flex friendly DataMapper patches, more specifically we just add +to_xml+ on
5
2
  # ValidationErrors class
3
+ require 'dm-serializer/common'
4
+ require 'dm-serializer/xml_serializers'
5
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'restfulx') if !defined?(RestfulX)
6
+
7
+ # RestfulX datamapper patches
6
8
  module DataMapper
9
+
10
+ # Monkey patches dm-serialization to_json method to add ruby_class: YourClass
11
+ # to all serialized objects
12
+ module Serialize
13
+ # Serialize a Resource to JavaScript Object Notation (JSON; RFC 4627)
14
+ #
15
+ # @return <String> a JSON representation of the Resource
16
+ def to_json(*args)
17
+ options = args.first || {}
18
+ result = '{ '
19
+ fields = []
20
+
21
+ propset = properties_to_serialize(options)
22
+
23
+ fields += propset.map do |property|
24
+ "#{property.name.to_json}: #{send(property.getter).to_json}"
25
+ end
26
+
27
+ fields << "\"ruby_class\": #{self.class.to_json}"
28
+
29
+ # add methods
30
+ (options[:methods] || []).each do |meth|
31
+ if self.respond_to?(meth)
32
+ fields << "#{meth.to_json}: #{send(meth).to_json}"
33
+ end
34
+ end
35
+
36
+ # Note: if you want to include a whole other model via relation, use :methods
37
+ # comments.to_json(:relationships=>{:user=>{:include=>[:first_name],:methods=>[:age]}})
38
+ # add relationships
39
+ # TODO: This needs tests and also needs to be ported to #to_xml and #to_yaml
40
+ (options[:relationships] || {}).each do |rel,opts|
41
+ if self.respond_to?(rel)
42
+ fields << "#{rel.to_json}: #{send(rel).to_json(opts)}"
43
+ end
44
+ end
45
+
46
+ result << fields.join(', ')
47
+ result << ' }'
48
+ result
49
+ end
50
+ end
51
+
7
52
  # see DataMapper docs for more details
8
53
  module Validate
9
54
  # By default DataMapper validation errors doesn't have +to_xml+ method. This is
@@ -11,20 +56,25 @@ module DataMapper
11
56
  class ValidationErrors
12
57
  # Add Flex-friendly +to_xml+ implementation
13
58
  def to_xml
14
- xml = Builder::XmlMarkup.new(:indent => 2)
15
- xml.instruct! :xml, :version => "1.0", :encoding => "UTF-8"
16
- xml.errors do |e|
17
- @errors.each_key do |attribute|
18
- @errors[attribute].each do |msg|
19
- next if msg.nil?
20
- if attribute == "base"
21
- e.error("message" => msg)
22
- else
23
- e.error("field" => attribute.to_s.camelcase(:lower), "message" => msg)
24
- end
59
+ xml = DataMapper::Serialize::XMLSerializers::SERIALIZER
60
+ doc ||= xml.new_document
61
+ root = xml.root_node(doc, "errors")
62
+ @errors.each_key do |attribute|
63
+ @errors[attribute].each do |msg|
64
+ next if msg.nil?
65
+ if attribute == "base"
66
+ xml.add_node(root, "error", nil, {"message" => msg})
67
+ else
68
+ xml.add_node(root, "error", nil, {"field" => attribute.to_s.camel_case.dcfirst, "message" => msg})
25
69
  end
26
70
  end
27
71
  end
72
+ xml.output(doc)
73
+ end
74
+
75
+ # Add to_json support for datamapper errors too
76
+ def to_json
77
+ @errors.to_json
28
78
  end
29
79
  end
30
80
  end
@@ -21,10 +21,6 @@
21
21
  <integer>299</integer>
22
22
  <key>metaData</key>
23
23
  <dict/>
24
- <key>openDocuments</key>
25
- <array>
26
- <string>app/flex/<%= project_name %>.mxml</string>
27
- </array>
28
24
  <key>shellVariables</key>
29
25
  <array>
30
26
  <dict>
@@ -43,10 +39,34 @@
43
39
  <key>variable</key>
44
40
  <string>TM_FLEX_OUTPUT</string>
45
41
  </dict>
42
+ <dict>
43
+ <key>enabled</key>
44
+ <true/>
45
+ <key>value</key>
46
+ <string>app/flex</string>
47
+ <key>variable</key>
48
+ <string>TM_AS3_USUAL_SRC_DIRS</string>
49
+ </dict>
50
+ <dict>
51
+ <key>enabled</key>
52
+ <true/>
53
+ <key>value</key>
54
+ <string>/Users/Dima/Projects/dev/restfulx_framework/framework/src</string>
55
+ <key>variable</key>
56
+ <string>TM_AS3_LIB_SRC_DIRS</string>
57
+ </dict>
58
+ <dict>
59
+ <key>enabled</key>
60
+ <true/>
61
+ <key>value</key>
62
+ <string><%= use_air ? 'air' : 'flex' %></string>
63
+ <key>variable</key>
64
+ <string>TM_FLEX_RUNTIME</string>
65
+ </dict>
46
66
  </array>
47
- <key>showFileHierarchyDrawer</key>
48
- <false/>
49
- <key>windowFrame</key>
50
- <string>{{5, 15}, {1073, 860}}</string>
67
+ <key>showFileHierarchyDrawer</key>
68
+ <false/>
69
+ <key>windowFrame</key>
70
+ <string>{{53, 14}, {1221, 864}}</string>
51
71
  </dict>
52
- </plist>
72
+ </plist>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" label="<%= class_name %>"
3
- xmlns:rcomponents="org.restfulx.components.*">
3
+ xmlns:rx="org.restfulx.components.rx.*">
4
4
  <mx:Script><![CDATA[
5
5
  import org.restfulx.Rx;
6
6
  import org.restfulx.utils.RxUtils;
@@ -121,7 +121,7 @@
121
121
  <% elsif attribute.type == :text -%>
122
122
  <mx:TextArea id="<%= attribute.flex_name %>TextArea" width="100%" height="200" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
123
123
  <% elsif attribute.type == :datetime || attribute.type == :time -%>
124
- <rcomponents:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
124
+ <rx:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
125
125
  <% elsif attribute.type == :date -%>
126
126
  <mx:DateField id="<%= attribute.flex_name %>DateField" selectedDate="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
127
127
  <% else -%>
@@ -42,8 +42,8 @@ class RxYamlScaffoldGenerator < Rails::Generator::Base
42
42
  opt.separator ''
43
43
  opt.separator 'Options:'
44
44
  opt.on("--flex-only", "Only generate the Flex/AIR files.",
45
- "Default: false") { |v| options[:main_only] = v }
45
+ "Default: false") { |v| options[:flex_only] = v }
46
46
  opt.on("--skip-framework", "Don't fetch the latest framework binary. You'll have to link/build the framework yourself.",
47
47
  "Default: false") { |v| options[:skip_framework] = v }
48
48
  end
49
- end
49
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dima-restfulx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dima Berastau
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-16 00:00:00 -08:00
12
+ date: 2009-02-02 00:00:00 -08:00
13
13
  default_executable: rx-gen
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency