clone 1.0.0.beta → 1.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -2
  3. data/VERSION +1 -1
  4. data/samples/grape/init/Gemfile +2 -2
  5. data/samples/grape/init/{docs → doc}/grape/documentation.txt +0 -0
  6. data/samples/grape/init/lib/grape.rb +12 -2
  7. data/samples/grape/init/lib/grape/mount/rest_api.rb +22 -0
  8. data/samples/grape/vendor/lib/grape/vendors/{v1/rest.rb → v1.rb} +4 -2
  9. data/samples/helper/init/Gemfile +5 -0
  10. data/samples/helper/init/lib/boot.rb +23 -0
  11. data/samples/mongoid/init/Gemfile +1 -3
  12. data/samples/mongoid/init/lib/mongoid.rb +9 -40
  13. data/samples/mongoid/init/lib/mongoid/meta/{mongoid.yml → config.yml} +0 -0
  14. data/samples/rack/init/Gemfile +1 -4
  15. data/samples/rack/init/lib/rack.rb +1 -1
  16. metadata +8 -44
  17. data/samples/blather/restlike/Gemfile +0 -4
  18. data/samples/blather/restlike/cmd.yml +0 -1
  19. data/samples/blather/restlike/lib/blather.rb +0 -9
  20. data/samples/blather/restlike/lib/blather/dsl/api.rb +0 -78
  21. data/samples/blather/restlike/lib/blather/dsl/call.rb +0 -13
  22. data/samples/blather/restlike/lib/blather/dsl/client.rb +0 -58
  23. data/samples/blather/restlike/lib/blather/dsl/config.rb +0 -11
  24. data/samples/blather/restlike/lib/blather/dsl/extraDSL.rb +0 -163
  25. data/samples/blather/restlike/lib/blather/meta/require.rb +0 -8
  26. data/samples/blather/restlike/lib/blather/meta/xmpp.yml +0 -5
  27. data/samples/blather/restlike/lib/blather/vendors/xmpp_default.rb +0 -27
  28. data/samples/blather/restlike/readme +0 -2
  29. data/samples/grape/init/docs/grape/generate_rest_routes.rb +0 -37
  30. data/samples/grape/init/docs/grape/ls_routes.rb +0 -31
  31. data/samples/grape/init/lib/grape/meta/subclasses.rb +0 -20
  32. data/samples/grape/init/lib/grape/xpath/app.rb +0 -30
  33. data/samples/grape/init/lib/grape/xpath/ruotes.rb +0 -6
  34. data/samples/mongoid/cmd.yml +0 -1
  35. data/samples/mongoid/init/docs/mongoid/ModelsRelations.rb +0 -11
  36. data/samples/mongoid/init/docs/mongoid/generate_modelsToDocs.rb +0 -25
  37. data/samples/mongoid/init/docs/mongoid/modelsToDocs.rb +0 -25
  38. data/samples/mongoid/init/lib/mongoid/dsl/extraDSL_CRUD.rb +0 -446
  39. data/samples/mongoid/init/lib/mongoid/dsl/extraDSL_MP.rb +0 -517
  40. data/samples/mongoid/init/lib/mongoid/dsl/init.rb +0 -37
  41. data/samples/mongoid/init/lib/mongoid/dsl/params.rb +0 -67
  42. data/samples/mongoid/init/lib/mongoid/meta/banned.rb +0 -147
  43. data/samples/mongoid/init/lib/mongoid/meta/control.yml +0 -13
  44. data/samples/mongoid/init/lib/mongoid/meta/mpatch.rb +0 -14
  45. data/samples/rack/init/lib/rack/meta/webserver/thin.rb +0 -45
  46. data/samples/rack/init/lib/rack/meta/webserver/thin.yml +0 -6
  47. data/samples/rack/init/server.rb +0 -0
  48. data/samples/rest_client/init/Gemfile +0 -5
  49. data/samples/rest_client/init/boot.rb +0 -2
  50. data/samples/rest_client/init/cmd.yml +0 -1
  51. data/samples/rest_client/init/config/rest_client/defaults.rb +0 -16
  52. data/samples/rest_client/init/docs/rest_client/simple overlook +0 -251
  53. data/samples/rest_client/init/test/rest_client/rest_dsl.rb +0 -5
  54. data/samples/rest_client/readme +0 -7
@@ -1,11 +0,0 @@
1
- module XMPP
2
- class CONFIG
3
- JID = BLATHER_CONFIG['XMPP']['JID']
4
- PWD = BLATHER_CONFIG['XMPP']['PWD']
5
- HOST = BLATHER_CONFIG['XMPP']['HOST'] || '0.0.0.0'
6
- PORT = BLATHER_CONFIG['XMPP']['PORT'] || '5222'
7
- TIMEOUT= BLATHER_CONFIG['XMPP']['TIMEOUT'] || 30
8
- SLEEP_TIME= BLATHER_CONFIG['XMPP']['SLEEP_TIME'] || 0.2
9
- MSG= BLATHER_CONFIG['XMPP']['MSG'] || {'version'=>'v0','path'=>'/default','method'=>'GET'}
10
- end
11
- end
@@ -1,163 +0,0 @@
1
- module XMPP
2
- ### extraDSL
3
- begin
4
- class << self
5
- def send(to,what)
6
- ### hold thread
7
- if XMPP::Client.ready.nil? && XMPP::Client.engine.nil?
8
- timeout= 30
9
- while XMPP::Client.ready.nil?
10
- sleep 1
11
- timeout-= 1
12
- if timeout <= 0
13
- break
14
- end
15
- end
16
- end
17
- XMPP::Client.engine.say to, what
18
- return true
19
- end
20
- def ask(to,what)
21
- ### wait for engine
22
- begin
23
- if XMPP::Client.ready.nil? && XMPP::Client.engine.nil?
24
- timeout= 30
25
- while XMPP::Client.ready.nil?
26
- sleep 1
27
- timeout-= 1
28
- if timeout <= 0
29
- break
30
- end
31
- end
32
- end
33
- end
34
- ### generate sample form
35
- begin
36
- ### check msg structure
37
- begin
38
- if what['body'].nil?
39
- tmp_hash= Hash.new
40
- begin
41
- XMPP::CONFIG::MSG.each do |key,value|
42
- if !what[key].nil?
43
- tmp_hash[key]= what[key]
44
- what.delete key
45
- else
46
- tmp_hash[key]= value
47
- end
48
- end
49
- end
50
- tmp_hash['body']= what
51
- tmp_hash['token']= self.token
52
- what= tmp_hash
53
- else
54
- begin
55
- XMPP::CONFIG::MSG.each do |key,value|
56
- if what[key].nil?
57
- what[key]= value
58
- end
59
- end
60
- end
61
- what['token']= self.token
62
- end
63
- end
64
- end
65
- ### mark token
66
- begin
67
- XMPP::Client.answers[what['token']]=nil
68
- end
69
- ### send msg
70
- begin
71
- XMPP::Client.engine.say to, what.to_json
72
- rescue Exception
73
- XMPP::Client.engine.say to, what
74
- end
75
- ### after msg
76
- begin
77
- ### hold process
78
- begin
79
- sleep_time= XMPP::CONFIG::SLEEP_TIME
80
- timeout = XMPP::CONFIG::TIMEOUT.to_f / sleep_time
81
- while XMPP::Client.answers[what['token']].nil?
82
- sleep sleep_time
83
- timeout -= 1
84
- if timeout <= 0
85
- #logger
86
- puts "time is out for the answer"
87
- break
88
- end
89
- end
90
- end
91
- ### finis process with answer
92
- begin
93
- answer_msg = XMPP::Client.answers[what['token']]
94
- XMPP::Client.answers.delete what['token']
95
- end
96
- ### return answer
97
- begin
98
- return answer_msg
99
- end
100
- end
101
- end
102
- def receive(msg)
103
- if XMPP.json? msg
104
- message= JSON.parse(msg)
105
- XMPP::CONFIG::MSG.each do |key,value|
106
- if message[key].nil?
107
- message[key]= value
108
- end
109
- end
110
- if XMPP::Client.answers.keys.include?(message['token'])
111
- XMPP::Client.answers[message['token']]= message['body']
112
- else
113
- call_method= XMPP.generate_method_name(message)
114
- message['body']= XMPP::Call.__send__(call_method,message['body'])
115
- return message.to_json
116
- end
117
- end
118
- end
119
- def token
120
- begin
121
- token_string= Time.now.to_s
122
- [' ',':','-','+'].each do |one_sym|
123
- token_string.gsub!(one_sym,'')
124
- end
125
- token_string+= Random.srand(Time.now.to_i).to_s
126
- token_string+= XMPP::CONFIG::JID.to_s.gsub('@','').gsub('.','').upcase
127
- end
128
- return token_string
129
- end
130
- def json? json
131
- begin
132
- JSON.parse(json)
133
- return true
134
- rescue Exception => e
135
- return false
136
- end
137
- end
138
- def routes
139
- XMPP::Call.singleton_methods - [:create_singleton_method,:method_missing]
140
- end
141
- def generate_method_name(hash)
142
-
143
- call_method= String.new
144
- call_method+= hash['method'].to_s.downcase
145
- call_method+= '_'
146
- call_method+= hash['version']
147
- call_method+= '_'
148
- if hash['path'].include? '/'
149
- call_method+= hash['path'].to_s.gsub('/','_')
150
- elsif hash['path'].include? '\\'
151
- call_method+= hash['path'].to_s.gsub('\\','_')
152
- elsif hash['path'].include? '.'
153
- call_method+= hash['path'].to_s.gsub('.','_')
154
- else
155
- call_method+= hash['path']
156
- end
157
-
158
- return call_method
159
-
160
- end
161
- end
162
- end
163
- end
@@ -1,8 +0,0 @@
1
- yml_file = (Dir.entries(File.join(File.dirname(__FILE__))).reject{|x| x[-4,4] != ".yml"})[0].to_s
2
- BLATHER_CONFIG = YAML.load_file(File.expand_path(File.join(File.dirname(__FILE__),yml_file)))
3
-
4
- module XMPP
5
- ### require
6
- require 'blather/client/dsl'
7
- require 'json'
8
- end
@@ -1,5 +0,0 @@
1
- XMPP:
2
- JID: arthur@wonderland.lit
3
- PWD: secr3t
4
- HOST: 0.0.0.0
5
- PORT: 5222
@@ -1,27 +0,0 @@
1
- module Vendors
2
- class Default < XMPP::API
3
-
4
- #version :prototype #> default is v0
5
-
6
- resource :default do
7
-
8
- get do |params|
9
-
10
- end
11
-
12
- post do |params|
13
-
14
- end
15
-
16
- put do |params|
17
-
18
- end
19
-
20
- delete do |params|
21
-
22
- end
23
-
24
-
25
- end
26
- end
27
- end
@@ -1,2 +0,0 @@
1
- this is a RESTlike (grape) XMPP client based on blather dsl pkg
2
- main format is JSON
@@ -1,37 +0,0 @@
1
- require_relative File.join("..","..","boot.rb")
2
- write_out_array = Array.new
3
- write_out_array.push "REST::API ROUTES:\n"
4
- write_out_array.push "\nTable Of Contents\n================="
5
-
6
- array_of_hash = Array.new
7
- REST::API.routes.map do |route|
8
- array_of_hash.push({:method => route.route_method.to_s, :path => route.route_path.to_s})
9
- end
10
- contents_array= Array.new
11
- array_of_hash.each do |hash|
12
- separator_str= String.new
13
- if hash[:method].to_s == "POST" || hash[:method].to_s == "DELETE"
14
- separator_str= "\t\t "
15
- else
16
- separator_str= "\t\t\t "
17
- end
18
- contents_array.push "#{hash[:method]}#{separator_str}#{hash[:path]}"
19
- end
20
- write_out_array.push contents_array.join("\n")
21
- write_out_array.push "\nExplanations\n============"
22
- REST::API.routes.map do |route|
23
- new_docs_element= Array.new
24
- new_docs_element.push "Method: #{route.route_method}"
25
- new_docs_element.push "Path: #{route.route_path}"
26
- new_docs_element.push "description: #{route.route_description}"
27
- if route.route_params.count == 0
28
- new_docs_element.push "No specified or special params"
29
- else
30
- route.route_params.each do |key,value|
31
- new_docs_element.push " -#{key}: #{value}"
32
- end
33
- end
34
- new_docs_element.push "\n"
35
- write_out_array.push new_docs_element.join("\n")
36
- end
37
- File.new("routes_docs.txt","w").write write_out_array.join("\n")
@@ -1,31 +0,0 @@
1
- require_relative File.join("..","..","boot.rb")
2
- write_out_array = Array.new
3
- write_out_array.push "REST::API ROUTES:\n"
4
- write_out_array.push "\nTable Of Contents\n================="
5
-
6
- array_of_hash = Array.new
7
- REST::API.routes.map do |route|
8
- array_of_hash.push({:method => route.route_method.to_s, :path => route.route_path.to_s})
9
- end
10
- contents_array= Array.new
11
- array_of_hash.sort_by!{|hash| hash[:method]}.each do |hash|
12
- contents_array.push "#{hash[:method]} | #{hash[:path]}"
13
- end
14
- write_out_array.push contents_array.join("\n")
15
- write_out_array.push "\nExplanations\n============"
16
- REST::API.routes.map do |route|
17
- new_docs_element= Array.new
18
- new_docs_element.push "Method: #{route.route_method}"
19
- new_docs_element.push "Path: #{route.route_path}"
20
- new_docs_element.push "description: #{route.route_description}"
21
- if route.route_params.count == 0
22
- new_docs_element.push "No specified or special params"
23
- else
24
- route.route_params.each do |key,value|
25
- new_docs_element.push " -#{key}: #{value}"
26
- end
27
- end
28
- new_docs_element.push "\n"
29
- write_out_array.push new_docs_element.join("\n")
30
- end
31
- puts write_out_array.join("\n")
@@ -1,20 +0,0 @@
1
- module Grape
2
- # The API class is the primary entry point for
3
- # creating Grape APIs.Users should subclass this
4
- # class in order to build an API.
5
- class API
6
-
7
- def self.inherited(subclass)
8
- @classes ||= Array.new
9
- @classes.push subclass.name.constantize
10
-
11
- subclass.reset!
12
- subclass.logger = logger.clone
13
- end
14
-
15
- def self.classes
16
- @classes
17
- end
18
-
19
- end
20
- end
@@ -1,30 +0,0 @@
1
- #encoding: UTF-8
2
- module REST
3
- class API < Grape::API
4
-
5
- ### defaults
6
- begin
7
- ### exclude array
8
- exclude_list = [
9
- self
10
- ]
11
- end
12
-
13
- ### mount components
14
- begin
15
- Grape::API.classes.each do |component|
16
- if !exclude_list.include? component
17
- begin
18
- if component.class == Class
19
- mount component
20
- else
21
- mount component.constantize
22
- end
23
- end
24
- end
25
- end
26
- end
27
-
28
-
29
- end
30
- end
@@ -1,6 +0,0 @@
1
- if $DEBUG
2
- puts "\n\nREST::API ROUTES:"
3
- REST::API.routes.map do |route|
4
- putsf 8,"\t#{route.route_method}","#{route.route_path}"
5
- end
6
- end
@@ -1 +0,0 @@
1
- helper: init
@@ -1,11 +0,0 @@
1
- require_relative File.join("..","..","boot.rb")
2
-
3
-
4
- begin
5
- relations_array = Array.new
6
- Mongoid::Document.classes.each do |class_name|
7
- relations_array.push class_name.constantize.getPaths[0]
8
- end
9
- relations_array= relations_array.sort_by{ |hsh| hsh.values }
10
- end
11
- puts relations_array
@@ -1,25 +0,0 @@
1
- require_relative File.join("..","..","boot.rb")
2
-
3
- write_out_array= Array.new
4
- begin
5
- puts "\n"
6
- separator= "="*0#*99
7
- Mongoid::Document.classes.each do |class_name|
8
- puts separator
9
- write_out_array.push separator
10
- puts "the model name:#{class_name}"
11
- write_out_array.push "the model name:#{class_name}"
12
- begin
13
- puts "the embeds model:"+(class_name.constantize.getPaths).inspect
14
- write_out_array.push "the embeds model:"+(class_name.constantize.getPaths).inspect
15
- rescue NoMethodError
16
- end
17
- class_name.constantize.properties.each do |key,value|
18
- printf "%-78s %s\n", "The field name: #{key}", "field type: #{value}"
19
- write_out_array.push("The field name: #{key},\t field type: #{value}")
20
- end
21
- puts separator
22
- write_out_array.push separator
23
- end
24
- end
25
- File.new("models_docs.txt","w").write write_out_array.join("\n")
@@ -1,25 +0,0 @@
1
- require_relative File.join("..","..","boot.rb")
2
-
3
- write_out_array= Array.new
4
- begin
5
- puts "\n"
6
- separator= "="*0#*99
7
- Mongoid::Document.classes.each do |class_name|
8
- puts separator
9
- write_out_array.push separator
10
- puts "the model name:#{class_name}"
11
- write_out_array.push "the model name:#{class_name}"
12
- begin
13
- puts "the embeds model:"+(class_name.constantize.getPaths).inspect
14
- write_out_array.push "the embeds model:"+(class_name.constantize.getPaths).inspect
15
- rescue NoMethodError
16
- end
17
- class_name.constantize.properties.each do |key,value|
18
- printf "%-78s %s\n", "The field name: #{key}", "field type: #{value}"
19
- write_out_array.push("The field name: #{key},\t field type: #{value}")
20
- end
21
- puts separator
22
- write_out_array.push separator
23
- end
24
- end
25
- File.new("models_docs.txt","w").write write_out_array.join("\n")
@@ -1,446 +0,0 @@
1
- module Mongoid
2
- module ExtraDSL
3
- ### Mongoid::ExtraDSL.CRUD_name(
4
- # *models, #target , parent
5
- # *param_hashTags,
6
- # [optionable]relation_type_string
7
- #)
8
- class << self
9
-
10
- def input(*args)
11
-
12
- ### defaults
13
- begin
14
-
15
- relation_type_model = nil
16
-
17
- parent_model = nil
18
- target_model = nil
19
-
20
- models_array = Array.new
21
- params = Hash.new
22
- pager = Hash.new
23
- properties = Hash.new
24
-
25
- end
26
-
27
- ### fill up defaults by argumens
28
- begin
29
- args.each do |argument|
30
- case argument.class.to_s.downcase
31
-
32
- when "class"
33
- models_array.push argument
34
-
35
- when "hash","hashie::mash"
36
- argument.each do |key,value|
37
- case key.to_s.downcase
38
-
39
- when "db_page_limit","db_page_number"
40
- pager[key.to_s.downcase]= value
41
-
42
- else
43
- params[key]=value
44
-
45
- end
46
- end
47
-
48
- when "string"
49
- begin
50
- if argument.to_s.downcase.include?("mongoid::relations")
51
- #argument=argument.split('::')
52
- #2.times do
53
- # argument.shift()
54
- #end
55
- #argument=argument.join('::')
56
- relation_type_model= argument
57
- else
58
- begin
59
- if argument.constantize != Object
60
- models_array.push argument.constantize
61
- end
62
- rescue NameError
63
- relation_type_model= argument
64
- end
65
- end
66
- end
67
-
68
- end
69
- end
70
- if models_array.count <= 1
71
- target_model= models_array[0]
72
- models_array.shift()
73
- else
74
-
75
- target_model= models_array[0]
76
- models_array.shift()
77
-
78
- parent_model= models_array[0]
79
- models_array.shift()
80
-
81
- end
82
- end
83
-
84
- ### params sub key remove
85
- begin
86
- if !params['params'].nil?
87
-
88
- tmp_hash=Hash.new
89
- tmp_hash= params['params']
90
- params.delete 'params'
91
- tmp_hash.each do |key,value|
92
- params[key]= value
93
- end
94
-
95
- end
96
- end
97
-
98
- ### BSON::ObjectId convert in params
99
- begin
100
- tmp_hash= Hash.new
101
- params.each do |key,value|
102
- if key.to_s == '_id'
103
- tmp_hash[key]= Moped::BSON::ObjectId.from_string(value.to_s)
104
- end
105
- if key.to_s == 'id'
106
- tmp_hash['_id']= Moped::BSON::ObjectId.from_string(value.to_s)
107
- params.delete 'id'
108
- end
109
- end
110
- if tmp_hash != Hash.new
111
- tmp_hash.each do |key,value|
112
- params[key]= value
113
- end
114
- end
115
- end
116
-
117
- ### parent_id key search
118
- begin
119
- parent_id_key= "#{parent_model.convert_model_name.to_s.downcase}_id"
120
- parent_id_key= "parent_id" if parent_id_key=='_id'
121
-
122
- tmp_hash= Hash.new
123
- params.each do |key,value|
124
- case key.to_s.downcase
125
- when "parent_id","parentid",parent_id_key
126
- properties['parent_id']=value
127
- else
128
- tmp_hash[key]=value
129
- end
130
- end
131
- params= tmp_hash
132
- end
133
-
134
- ### params trim by banned elements
135
- begin
136
- Mongoid::Banned.list.each do |category,category_elements|
137
- case category
138
-
139
- when :ProtocolElements
140
- category_elements.each do |one_banned_global_key|
141
- params.delete one_banned_global_key
142
- end
143
-
144
- else
145
- #nothing
146
-
147
- end
148
- end
149
- end
150
-
151
- ### generate model connection type
152
- begin
153
- begin
154
- relation_type_model ||= target_model.reverse_relation_connection_type(parent_model)
155
- rescue Exception
156
- relation_type_model ||= parent_model.relation_connection_type(target_model)
157
- end
158
- end
159
-
160
- ### return processed data as hash table
161
- begin
162
- return_hash= {
163
- :parent_model => parent_model,
164
- :target_model => target_model,
165
- :models => models_array,
166
- :model_type => relation_type_model,
167
- :params => params,
168
- :pager => pager,
169
- :properties => properties
170
- }
171
- return return_hash
172
- end
173
-
174
- end
175
-
176
- def read(*args)
177
-
178
- ### defaults
179
- begin
180
- input_hash = self.input(*args)
181
- parent_model = input_hash[:parent_model]
182
- target_model = input_hash[:target_model]
183
- model_type = input_hash[:model_type]
184
- params = input_hash[:params]
185
- pager = input_hash[:pager]
186
- properties = input_hash[:properties]
187
- return_object = nil
188
- end
189
-
190
- #puts args.inspect,""
191
- #puts input_hash.inspect,""
192
-
193
- ### processing
194
- begin
195
- case true
196
-
197
- when model_type.downcase.include?("none"),
198
- model_type.downcase.include?("self")
199
- begin
200
- if params.find_hashize == Hash.new
201
- return_object= target_model._all
202
- elsif !params.find_hashize['_id'].nil?
203
- return_object= target_model._find(params.find_hashize['_id'])
204
- else
205
- return_object= target_model._where(params.find_hashize)
206
- end
207
- end
208
-
209
- when model_type.downcase.include?("embedded"),
210
- model_type.downcase.include?("referenced")
211
- begin
212
- if !properties['parent_id'].nil?
213
- ### find embeds collection by parent_id
214
- return_object= parent_model._find_by(
215
- properties['parent_id']).__send__(target_model.convert_model_name)
216
- else
217
- ### find by params
218
- if !params['_id'].nil?
219
- return_object= target_model._find_by(params.find_hashize)
220
- elsif params.find_hashize == Hash.new
221
- return_object= target_model._all(parent_model)
222
- else
223
- return_object= target_model._where(params.find_hashize)
224
- end
225
- end
226
- end
227
-
228
- end
229
- end
230
-
231
- ### after limiting
232
- begin
233
- if pager != Hash.new && return_object.class == Mongoid::Criteria && !pager['db_page_limit'].nil?
234
- if pager['db_page_number'].nil?
235
- return_object= return_object.limit(pager['db_page_limit'])
236
- else
237
- return_object= return_object.limit(pager['db_page_limit'].to_i).offset(
238
- (pager['db_page_number'].to_i * pager['db_page_limit'].to_i))
239
- end
240
- end
241
- end
242
-
243
- ### grape readable formating
244
- begin
245
-
246
- #if return_object.class == Mongoid::Criteria
247
- # return_object= Array[*return_object]
248
- #end
249
-
250
-
251
- return return_object
252
- end
253
-
254
- end
255
-
256
- def create(*args)
257
-
258
- ### defaults
259
- begin
260
- input_hash = self.input(*args)
261
- parent_model = input_hash[:parent_model]
262
- target_model = input_hash[:target_model]
263
- model_type = input_hash[:model_type]
264
- params = input_hash[:params]
265
- properties = input_hash[:properties]
266
- return_key = 'id'
267
- return_object = nil
268
- end
269
-
270
- ### params trim by banned elements
271
- begin
272
- Mongoid::Banned.list.each do |category,category_elements|
273
- case category
274
-
275
- when :Elements
276
- category_elements.each do |one_banned_global_key|
277
- params.delete one_banned_global_key
278
- end
279
-
280
- when :ModelElements
281
- category_elements.each do |one_info_hash|
282
- if one_info_hash.keys[0].to_s == target_model.to_s
283
- params.delete one_info_hash.values[0]
284
- end
285
- end
286
-
287
- end
288
- end
289
- end
290
-
291
- ### processing
292
- begin
293
- case true
294
-
295
- when model_type.downcase.include?("none"),
296
- model_type.downcase.include?("self")
297
- begin
298
-
299
-
300
- new_data= target_model.new(params.new_hashize)
301
-
302
- begin
303
- new_data.save
304
- rescue Exception
305
- return_object= false
306
- end
307
-
308
- if return_object.nil?
309
- return_object= new_data['_id']
310
- end
311
-
312
- end
313
-
314
- when model_type.downcase.include?("embedded::many"),
315
- model_type.downcase.include?("referenced::many")
316
- begin
317
- parent= parent_model._find(properties['parent_id'])
318
- if params['_id'].nil?
319
- parent.__send__(target_model.convert_model_name.to_s).push(
320
- target_model.new((params.new_hashize)))
321
- else
322
- parent.__send__(target_model.convert_model_name.to_s).push(
323
- target_model._find((params.find_hashize['_id'])))
324
- end
325
- begin
326
- parent.save!
327
- rescue Exception
328
- return_object= false
329
- end
330
-
331
- if return_object.nil?
332
- return_object= parent.__send__(target_model.convert_model_name.to_s).last['_id']
333
- end
334
-
335
- end
336
-
337
- when model_type.downcase.include?("embedded::one"),
338
- model_type.downcase.include?("referenced::one")
339
- begin
340
- parent= parent_model._find(properties['parent_id'])
341
- if params['_id'].nil?
342
- parent.__send__("#{target_model.convert_model_name}=",
343
- target_model.new(params.new_hashize))
344
- else
345
- parent.__send__("#{target_model.convert_model_name}=",
346
- target_model._find((params.find_hashize['_id'])))
347
- end
348
-
349
- begin
350
- parent.save
351
- rescue Exception
352
- return_object= false
353
- end
354
-
355
- if return_object.nil?
356
- return_object= parent.__send__(target_model.convert_model_name.to_s)['_id']
357
- end
358
-
359
- end
360
-
361
- end
362
- end
363
-
364
- ### return return_obj
365
- begin
366
- #return { return_key => return_object }
367
- return return_object
368
-
369
- end
370
-
371
- end
372
-
373
- def update(*args)
374
-
375
- ### defaults
376
- begin
377
- input_hash = self.input(*args)
378
- parent_model = input_hash[:parent_model]
379
- target_model = input_hash[:target_model]
380
- model_type = input_hash[:model_type]
381
- params = input_hash[:params]
382
- end
383
-
384
- ### processing
385
- begin
386
- case true
387
-
388
- when false
389
- #do nothing
390
-
391
- else
392
- begin
393
-
394
- new_data= target_model._find(params['_id'])
395
- params.new_hashize.each do |key,value|
396
- new_data[key]=value
397
- end
398
- new_data.save!
399
-
400
- end
401
-
402
- end
403
- end
404
-
405
- end
406
-
407
- def delete(*args)
408
-
409
- ### defaults
410
- begin
411
- input_hash = self.input(*args)
412
- parent_model = input_hash[:parent_model]
413
- target_model = input_hash[:target_model]
414
- model_type = input_hash[:model_type]
415
- params = input_hash[:params]
416
- end
417
-
418
- ### processing
419
- begin
420
- case true
421
-
422
- when false
423
- #do nothing
424
-
425
- else
426
- ### embeds collections
427
- begin
428
-
429
- something_to_delete= target_model._find(params['_id'])
430
- something_to_delete.delete
431
- begin
432
- something_to_delete.save
433
- rescue Exception
434
- false
435
- end
436
-
437
- end
438
-
439
- end
440
- end
441
-
442
- end
443
-
444
- end
445
- end
446
- end