module Pulp::Common::Lifecycle::ClassMethods
Public Instance Methods
has_collection(options={})
click to toggle source
optional features
# File lib/pulp/common/lifecycle.rb, line 83 def has_collection(options={}) instance_eval %{ def all base_get('').collect {|e| self.new(e) } end} options[:all_filters] && options[:all_filters].each do |filter| instance_eval %{ def find_by_#{filter}(f) base_get('',nil,{ :#{filter} => f }).collect {|e| self.new(e) } end} end end
has_create()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 109 def has_create include Pulp::Common::Lifecycle::Create end
has_crud(options={})
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 97 def has_crud(options={}) has_collection(options[:collection]||{}) has_create has_get has_update has_delete end
has_delete()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 105 def has_delete include Pulp::Common::Lifecycle::Delete end
has_get()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 113 def has_get include Pulp::Common::Lifecycle::Get end
has_update()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 117 def has_update include Pulp::Common::Lifecycle::Update end
locked_fields()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 160 def locked_fields @locked_fields ||= [] end
pulp_action(action_name, options={})
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 121 def pulp_action(action_name, options={}) options[:method] ||= :post options[:params] = true if options[:params].nil? # default is true slash = (options[:append_slash].nil? || options[:append_slash]) ? '/' : '' if options[:returns] module_eval %{ def #{action_name}(#{"params#{"={}" if options[:params] == :optional}" if options[:params]}) #{options[:returns]}.new(self.class.base_#{(options[:parse] == false) ? 'unparsed_' : '' }#{options[:method]}('#{action_name}#{slash}',self.id,#{options[:params] ? 'params' : 'nil' })) end} else module_eval %{ def #{action_name}(#{"params#{"={}" if options[:params] == :optional}" if options[:params]}) self.class.base_#{(options[:parse] == false) ? 'unparsed_' : '' }#{options[:method]}('#{action_name}#{slash}',self.id,#{options[:params] ? 'params' : 'nil' }) end} end if options[:task_list] module_eval %{ def #{action_name}_tasks self.class.base_get('#{action_name}#{slash}',self.id).collect{|p| Pulp::Task.new(p) } end} end end
pulp_deferred_field(field,options={})
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 43 def pulp_deferred_field(field,options={}) if options[:array] module_eval("def #{field}() self.class.plain_get(fields['#{field}']).collect{|p| #{options[:array]}.new(p) }; end") elsif options[:returns] == :plain module_eval("def #{field}() self.class.plain_base.connection[fields['#{field}'].sub(/^\\/pulp\\/api\\//,'')].get; end") elsif options[:returns] module_eval("def #{field}() (res = self.class.plain_get(fields['#{field}'])).empty? ? nil : #{options[:returns]}.new(res); end") else module_eval("def #{field}() self.class.plain_get(fields['#{field}']); end") end module_eval("def #{field}_link() fields['#{field}']; end") end
pulp_deferred_fields(*fields)
click to toggle source
Declare many deffered fields at once.
# File lib/pulp/common/lifecycle.rb, line 57 def pulp_deferred_fields(*fields) [*fields].each {|field| pulp_deferred_field(field) } end
pulp_field(field,options={})
click to toggle source
Allows for dynamically declaring fields that will come from Pulp
.
# File lib/pulp/common/lifecycle.rb, line 29 def pulp_field(field,options={}) locked_fields << field if options[:locked] module_eval("def #{field}() user_fields['#{field}'] || fields['#{field}']; end") module_eval("def #{field}=(val) user_fields['#{field}'] = val; end") unless options[:locked] record_fields[field] = options end
pulp_fields(*fields)
click to toggle source
Declare many fields at once.
# File lib/pulp/common/lifecycle.rb, line 39 def pulp_fields(*fields) fields.to_a.each {|field| pulp_field(field) } end
pulp_locked_field(field,options={})
click to toggle source
declare a field that is locked
# File lib/pulp/common/lifecycle.rb, line 62 def pulp_locked_field(field,options={}) pulp_field field, options.merge(:locked => true) end
pulp_locked_fields(*fields)
click to toggle source
Declare many locked fields at once.
# File lib/pulp/common/lifecycle.rb, line 67 def pulp_locked_fields(*fields) [*fields].each {|field| pulp_locked_field(field) } end
pulp_special_field(field,options={})
click to toggle source
special fields are locked and registered as being special
# File lib/pulp/common/lifecycle.rb, line 72 def pulp_special_field(field,options={}) pulp_locked_field(field,options) special_fields << field end
pulp_special_fields(*fields)
click to toggle source
Declare multiple special fields at once
# File lib/pulp/common/lifecycle.rb, line 78 def pulp_special_fields(*fields) [*fields].each{|f| pulp_special_field(f) } end
pulp_update_action(action_name,options)
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 145 def pulp_update_action(action_name,options) module_eval %{ def update_#{action_name}(#{[*options[:params]].join(', ')}) self.class.base_put('',self.id,{ #{[*options[:params]].collect{|p| ":#{p} => #{p}" }.join(', ')} }) end} end
record_fields()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 156 def record_fields @record_fields ||= {} end
special_fields()
click to toggle source
# File lib/pulp/common/lifecycle.rb, line 152 def special_fields @special_fields ||= [] end