occi 2.5.12 → 2.5.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -190,6 +190,10 @@ module OCCI
190
190
  header
191
191
  end
192
192
 
193
+ def to_s
194
+ self.location
195
+ end
196
+
193
197
  def inspect
194
198
  JSON.pretty_generate(JSON.parse(to_json))
195
199
  end
@@ -77,7 +77,7 @@ module OCCI
77
77
  def as_json(options={ })
78
78
  link = super
79
79
  link.rel = @rel if @rel
80
- link.source = self.source.to_s if self.source.kind_of? String if self.source
80
+ link.source = self.source.to_s if self.source.to_s
81
81
  link.target = self.target.to_s if self.target
82
82
  link
83
83
  end
data/lib/occi/parser.rb CHANGED
@@ -190,11 +190,28 @@ module OCCI
190
190
  # @return [OCCI::Collection]
191
191
  def self.json(json)
192
192
  collection = OCCI::Collection.new
193
- hash = Hashie::Mash.new(JSON.parse(json))
193
+ hash = Hashie::Mash.new(JSON.parse(json))
194
194
  collection.kinds.concat hash.kinds.collect { |kind| OCCI::Core::Kind.new(kind.scheme, kind.term, kind.title, kind.attributes, kind.related, kind.actions) } if hash.kinds
195
195
  collection.mixins.concat hash.mixins.collect { |mixin| OCCI::Core::Mixin.new(mixin.scheme, mixin.term, mixin.title, mixin.attributes, mixin.related, mixin.actions) } if hash.mixins
196
+ collection.actions.concat hash.actions.collect { |action| OCCI::Core::Action.new(action.scheme, action.term, action.title, action.attributes) } if hash.actions
196
197
  collection.resources.concat hash.resources.collect { |resource| OCCI::Core::Resource.new(resource.kind, resource.mixins, resource.attributes, resource.actions, resource.links) } if hash.resources
197
- collection.links.concat hash.links.collect { |link| OCCI::Core::Link.new(link.kind, link.mixins, link.attributes) } if hash.links
198
+ collection.links.concat hash.links.collect { |link| OCCI::Core::Link.new(link.kind, link.mixins, link.attributes, [], nil, link.target) } if hash.links
199
+
200
+ if collection.resources.size == 1 && collection.links.size > 0
201
+ if collection.resources.first.links.empty?
202
+ collection.links.each { |link| link.source = collection.resources.first }
203
+ collection.resources.first.links = collection.links
204
+ end
205
+ end
206
+
207
+ # TODO: replace the following mechanism with one in the Links class
208
+ # replace link locations with link objects in all resources
209
+ collection.resources.each do |resource|
210
+ resource.links.collect! do |resource_link|
211
+ lnk = collection.links.select { |link| resource_link == link.to_s }.first
212
+ lnk ||= resource_link
213
+ end
214
+ end
198
215
  collection
199
216
  end
200
217
 
data/lib/occi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OCCI
2
- VERSION = "2.5.12" unless defined?(::OCCI::VERSION)
2
+ VERSION = "2.5.13" unless defined?(::OCCI::VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occi
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.12
4
+ version: 2.5.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-12-02 00:00:00.000000000 Z
13
+ date: 2013-01-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json