nube 0.1.1 → 0.1.2

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/lib/nube/base.rb CHANGED
@@ -98,7 +98,7 @@ module Nube
98
98
  end
99
99
 
100
100
  def self.do_request(method, site_options, params={})
101
- site = site(site_options[:identity], self.name.pluralize.underscore, site_options[:action], site_options[:id])
101
+ site = site(site_options[:identity], self.name.split('::').last.pluralize.underscore, site_options[:action], site_options[:id])
102
102
  url = URI.parse(site)
103
103
  req = "Net::HTTP::#{method.to_s.camelize}".constantize.new(url.to_s)
104
104
  req.body = params.to_param
@@ -129,7 +129,7 @@ module Nube
129
129
 
130
130
  def self.method_missing(name, *args, &block)
131
131
  super(name, *args) unless ("#{self.name}Relation".constantize.instance_methods - self.instance_methods).include?(name)
132
- args.empty? ? self.node.send(name) : self.node.send(name, args.first)
132
+ args.empty? ? self.node.send(name) : self.node.send(name, *args)
133
133
  end
134
134
 
135
135
  end
@@ -38,7 +38,7 @@ module NubeController
38
38
 
39
39
  def self.resource(xmodel); @@resource = xmodel; end
40
40
 
41
- def apply_relations; @resource = @resource.where(relations).where(params[:server_id]); end
41
+ def apply_relations; @resource = @resource.where(relations).where(server_id: params[:server_id]); end
42
42
 
43
43
  def parse_request; @json = JSON.parse(request.body.read); end
44
44
 
@@ -3,123 +3,122 @@ module RemoteRelation
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- Object.const_set(
7
- "#{self.to_s.split('::').last}Relation", Class.new do
8
- attr_accessor :xmodel, :params
6
+ eval("class #{self.to_s}Relation;end")
7
+ "#{self.to_s}Relation".constantize.class_eval do
8
+ attr_accessor :xmodel, :params
9
9
 
10
- def initialize(xmodel, params={})
11
- @params = params
12
- @xmodel = xmodel
13
- end
14
-
15
- def find(*ids)
16
- @params.merge!({ where: [{id: ids.flatten}] })
17
- resources = all
18
- (resources.size > 1) ? resources : resources.first
19
- end
10
+ def initialize(xmodel, params={})
11
+ @params = params
12
+ @xmodel = xmodel
13
+ end
20
14
 
21
- def controller_name
22
- @xmodel.name.pluralize.underscore
23
- end
15
+ def find(*ids)
16
+ @params.merge!({ where: [{id: ids.flatten}] })
17
+ resources = all
18
+ (resources.size > 1) ? resources : resources.first
19
+ end
24
20
 
25
- def destroy_all(where={}, relations={})
26
- @xmodel.delete(@params.delete(:site_options).merge({ action: 'destroy_all' }), { where: [where].flatten }).map{|attrs| @xmodel.new(attrs, false) }
27
- end
21
+ def controller_name
22
+ @xmodel.name.pluralize.underscore
23
+ end
28
24
 
29
- def update_all(changes={}, where={}, relations={})
30
- changes.each do |attrib, value|
31
- # change true and false by 1 or 0 becouse params are sent as string
32
- changes[attrib] = (value ? 1 : 0) if !!value == value
33
- end
34
- @xmodel.put(@params.delete(:site_options).merge({ action: 'update_all' }), { changes: changes, where: [where].flatten }).first
35
- end
25
+ def destroy_all(where={}, relations={})
26
+ @xmodel.delete(@params.delete(:site_options).merge({ action: 'destroy_all' }), { where: [where].flatten }).map{|attrs| @xmodel.new(attrs, false) }
27
+ end
36
28
 
37
- def empty_attributes
38
- @xmodel.get(@params.delete(:site_options).merge({ action: 'empty_attributes' })).first
29
+ def update_all(changes={}, where={}, relations={})
30
+ changes.each do |attrib, value|
31
+ # change true and false by 1 or 0 becouse params are sent as string
32
+ changes[attrib] = (value ? 1 : 0) if !!value == value
39
33
  end
34
+ @xmodel.put(@params.delete(:site_options).merge({ action: 'update_all' }), { changes: changes, where: [where].flatten }).first
35
+ end
40
36
 
41
- def count
42
- @xmodel.get(@params.delete(:site_options).merge({ action: 'count' }), @params).first.to_i
43
- end
37
+ def empty_attributes
38
+ @xmodel.get(@params.delete(:site_options).merge({ action: 'empty_attributes' })).first
39
+ end
44
40
 
45
- def all
46
- @xmodel.get(@params.delete(:site_options), @params).map{|attributes| @xmodel.new(attributes, false) }
47
- end
41
+ def count
42
+ @xmodel.get(@params.delete(:site_options).merge({ action: 'count' }), @params).first.to_i
43
+ end
48
44
 
49
- def first
50
- (@params[:order] ||= []) << { id: :asc }
51
- @params[:limit] = 1
52
- all.first
53
- end
45
+ def all
46
+ @xmodel.get(@params.delete(:site_options), @params).map{|attributes| @xmodel.new(attributes, false) }
47
+ end
54
48
 
55
- def last
56
- (@params[:order] ||= []) << { id: :desc }
57
- @params[:limit] = 1
58
- all.last
59
- end
49
+ def first
50
+ (@params[:order] ||= []) << { id: :asc }
51
+ @params[:limit] = 1
52
+ all.first
53
+ end
60
54
 
61
- def joins(*models)
62
- if @xmodel.same_class?(models)
63
- params[:joins]= [] unless params.has_key?(:joins)
64
- tap{ |s| s.params[:joins] += models }
65
- else
66
- raise 'Errors: Some class is not Remote Resource'
67
- end
68
- end
55
+ def last
56
+ (@params[:order] ||= []) << { id: :desc }
57
+ @params[:limit] = 1
58
+ all.last
59
+ end
69
60
 
70
- def create(attrs={})
71
- obj = @xmodel.new(attrs)
72
- obj.save
73
- obj
61
+ def joins(*models)
62
+ if @xmodel.same_class?(models)
63
+ params[:joins]= [] unless params.has_key?(:joins)
64
+ tap{ |s| s.params[:joins] += models }
65
+ else
66
+ raise 'Errors: Some class is not Remote Resource'
74
67
  end
68
+ end
75
69
 
76
- def where(conditions); tap{|s| (s.params[:where] || s.params[:where] = []) << conditions}; end
70
+ def create(attrs={})
71
+ obj = @xmodel.new(attrs)
72
+ obj.save
73
+ obj
74
+ end
77
75
 
78
- def order(conditions); tap{|s| (s.params[:order] || s.params[:order] = []) << conditions}; end
76
+ def where(conditions); tap{|s| (s.params[:where] || s.params[:where] = []) << conditions}; end
79
77
 
80
- def limit(number); tap{|s| s.params[:limit] = number }; end
78
+ def order(conditions); tap{|s| (s.params[:order] || s.params[:order] = []) << conditions}; end
81
79
 
82
- def offset(number); tap{|s| s.params[:offset] = number }; end
80
+ def limit(number); tap{|s| s.params[:limit] = number }; end
83
81
 
84
- def page(size=1)
85
- @page = size
86
- limit(25) unless @params.has_key?(:limit)
87
- calculate_offset
88
- end
82
+ def offset(number); tap{|s| s.params[:offset] = number }; end
89
83
 
90
- def per(size=25)
91
- @page ||= 1
92
- limit(size)
93
- calculate_offset
94
- end
84
+ def page(size=1)
85
+ @page = size
86
+ limit(25) unless @params.has_key?(:limit)
87
+ calculate_offset
88
+ end
95
89
 
96
- def calculate_offset; offset(@params[:limit] * (@page - 1)); end
90
+ def per(size=25)
91
+ @page ||= 1
92
+ limit(size)
93
+ calculate_offset
94
+ end
97
95
 
98
- def paginate(value={})
99
- value.has_key?(:page) ? page(value[:page]) : page
100
- value.has_key?(:per_page) ? per(value[:per_page]) : per
101
- end
96
+ def calculate_offset; offset(@params[:limit] * (@page - 1)); end
102
97
 
103
- def search(params={}); tap{|s| s.params[:search] = params }; end
98
+ def paginate(value={})
99
+ value.has_key?(:page) ? page(value[:page]) : page
100
+ value.has_key?(:per_page) ? per(value[:per_page]) : per
101
+ end
104
102
 
105
- alias_method :ransack, :search
103
+ def search(params={}); tap{|s| s.params[:search] = params }; end
106
104
 
107
- def massive_transactions(transaction, method, action)
108
- @xmodel.send(method, @params.delete(:site_options).merge({ action: action }), @params.merge(transaction: transaction))
109
- end
105
+ alias_method :ransack, :search
110
106
 
111
- def massive_creation(transaction); massive_transactions(transaction, 'post', 'massive_creation', site_options); end
107
+ def massive_transactions(transaction, method, action)
108
+ @xmodel.send(method, @params.delete(:site_options).merge({ action: action }), @params.merge(transaction: transaction))
109
+ end
112
110
 
113
- def massive_sum(transaction); massive_transactions(transaction, 'put', 'massive_sum', site_options); end
111
+ def massive_creation(transaction); massive_transactions(transaction, 'post', 'massive_creation', site_options); end
114
112
 
115
- def massive_update(transaction); massive_transactions(transaction, 'put', 'massive_update', site_options); end
113
+ def massive_sum(transaction); massive_transactions(transaction, 'put', 'massive_sum', site_options); end
116
114
 
117
- def method_missing(name, *args, &block)
118
- all.send(name, *args, &block)
119
- end
115
+ def massive_update(transaction); massive_transactions(transaction, 'put', 'massive_update', site_options); end
120
116
 
117
+ def method_missing(name, *args, &block)
118
+ all.send(name, *args, &block)
121
119
  end
122
- )
120
+
121
+ end
123
122
  end
124
123
 
125
124
  # module ClassMethods
@@ -7,7 +7,7 @@ module RemoteScope
7
7
 
8
8
  def node(identity=nil)
9
9
  # identity = IDENTITY_SITE if not identity and defined?(IDENTITY_SITE)
10
- "#{self}Relation".constantize.new(self, { site_options: {identity: identity} })
10
+ "#{self}Relation".constantize.new(self, { site_options: {identity: (identity || token)} })
11
11
  end
12
12
 
13
13
  def build_params keys, values
data/lib/nube/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nube
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nube
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - g.edera
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: exe
17
17
  cert_chain: []
18
18
 
19
- date: 2016-04-15 00:00:00 -03:00
19
+ date: 2016-07-04 00:00:00 -03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -27,7 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
- hash: 999358234
30
+ hash: 352077850
31
31
  segments:
32
32
  - 4
33
33
  - x
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- hash: 999358234
45
+ hash: 352077850
46
46
  segments:
47
47
  - 4
48
48
  - x
@@ -57,7 +57,7 @@ dependencies:
57
57
  requirements:
58
58
  - - ~>
59
59
  - !ruby/object:Gem::Version
60
- hash: 999358234
60
+ hash: 352077850
61
61
  segments:
62
62
  - 4
63
63
  - x