Sha256: ecde483df6501ceeb088f7d89313244c9549804c9bdb02ec8816c39d8c5f6fe1

Contents?: true

Size: 744 Bytes

Versions: 7

Compression:

Stored size: 744 Bytes

Contents

module HaveAPI::Fs::Components
  class UpdateActionDir < ActionDir
    help_file :action_dir

    def exec
      ret = super

      return ret if !ret.is_a?(HaveAPI::Client::Response) || !ret.ok?

      data = children[:output].data
      return ret unless data.is_a?(HaveAPI::Client::ResourceInstance)

      params = @resource.actions[:show].params
      attrs = @resource.attributes

      data.attributes.each do |k, v|
        next if %i(id _meta).include?(k) || !attrs.has_key?(k)

        if params[k][:type] == 'Resource'
          @resource.send("#{k}=", data.send(k))
          context[:resource_instance_dir].update_association(k)

        else
          @resource.send("#{k}=", v)
        end
      end

      ret
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
haveapi-fs-0.11.0 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.10.0 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.9.0 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.8.0 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.7.1 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.7.0 lib/haveapi/fs/components/update_action_dir.rb
haveapi-fs-0.1.0 lib/haveapi/fs/components/update_action_dir.rb