Class: Inforouter::Folder

Inherits:
Record
  • Object
show all
Defined in:
lib/inforouter/folder.rb

Overview

A Folder defines an infoRouter folder.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Record

#initialize

Constructor Details

This class inherits a constructor from Inforouter::Record

Instance Attribute Details

#access_listObject

Folder access list.



21
22
23
# File 'lib/inforouter/folder.rb', line 21

def access_list
  @access_list
end

#creation_dateObject

Folder creation date.



15
16
17
# File 'lib/inforouter/folder.rb', line 15

def creation_date
  @creation_date
end

#descriptionObject

Folder description.



13
14
15
# File 'lib/inforouter/folder.rb', line 13

def description
  @description
end

#documentsObject

Folder documents. Array of Inforouter::Documents.



29
30
31
# File 'lib/inforouter/folder.rb', line 29

def documents
  @documents
end

#domain_idObject

Folder domain ID.



19
20
21
# File 'lib/inforouter/folder.rb', line 19

def domain_id
  @domain_id
end

#foldersObject

Folder folders. Array of Inforouter::Folders.



27
28
29
# File 'lib/inforouter/folder.rb', line 27

def folders
  @folders
end

#idObject

Folder ID.



5
6
7
# File 'lib/inforouter/folder.rb', line 5

def id
  @id
end

#nameObject

Folder name.



9
10
11
# File 'lib/inforouter/folder.rb', line 9

def name
  @name
end

#owner_nameObject

Folder owner name.



17
18
19
# File 'lib/inforouter/folder.rb', line 17

def owner_name
  @owner_name
end

#parent_idObject

Folder parent ID.



7
8
9
# File 'lib/inforouter/folder.rb', line 7

def parent_id
  @parent_id
end

#pathObject

Folder path.



11
12
13
# File 'lib/inforouter/folder.rb', line 11

def path
  @path
end

#property_setsObject

Folder property sets. Array of Inforouter::PropertySets.



23
24
25
# File 'lib/inforouter/folder.rb', line 23

def property_sets
  @property_sets
end

#rulesObject

Folder rules.



25
26
27
# File 'lib/inforouter/folder.rb', line 25

def rules
  @rules
end

Class Method Details

.find(options = {}) ⇒ Object

Find by path.



32
33
34
35
36
# File 'lib/inforouter/folder.rb', line 32

def self.find(options = {})
  folder = Folder.new(options)
  response = Inforouter.client.request :get_folder, folder.send(:folder_params)
  Inforouter::Responses::Folder.parse response
end

Instance Method Details

#add_property_setsBoolean

Returns:

  • (Boolean)


116
117
118
119
120
121
122
123
124
# File 'lib/inforouter/folder.rb', line 116

def add_property_sets
  request_params = {
    :path => path,
    'xmlpset' => PropertySet.to_xml(property_sets)
  }
  response = Inforouter.client.request :add_property_set_row, request_params
  result = Inforouter::Responses::AddPropertySetRow.parse response
  result[:@success] == 'true'
end

#createBoolean

Returns:

  • (Boolean)


75
76
77
78
79
# File 'lib/inforouter/folder.rb', line 75

def create
  response = Inforouter.client.request :create_folder, path_params
  result = Inforouter::Responses::CreateFolder.parse response
  result[:@success] == 'true'
end

#delete_property_set!(name) ⇒ Boolean

Returns:

  • (Boolean)


127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/inforouter/folder.rb', line 127

def delete_property_set!(name)
  # Select property set by name.
  property_set = @property_sets.select { |p| p.name == name }.first
  return false unless property_set
  request_params = {
    :path => path,
    'xmlpset' => property_set.delete_xml
  }
  response = Inforouter.client.request :delete_property_set_row, request_params
  result = Inforouter::Responses::DeletePropertySetRow.parse response
  if result[:@success] == 'true'
    @property_sets.reject! { |p| p.name == name }
  end
  result[:@success] == 'true'
end

#exists?Boolean

Returns:

  • (Boolean)


82
83
84
85
86
# File 'lib/inforouter/folder.rb', line 82

def exists?
  response = Inforouter.client.request :folder_exists, path_params
  result = Inforouter::Responses::FolderExists.parse response
  result[:@success] == 'true'
end

#update_access_list(options = {}) ⇒ Boolean

Returns:

  • (Boolean)


89
90
91
92
93
94
95
96
97
98
99
# File 'lib/inforouter/folder.rb', line 89

def update_access_list(options = {})
  options = { apply_to_tree: false }.merge(options)
  request_params = {
    :path => path,
    'AccessListXML' => access_list.to_xml,
    :apply_to_tree => options[:apply_to_tree] ? 1 : 0
  }
  response = Inforouter.client.request :set_access_list, request_params
  result = Inforouter::Responses::SetAccessList.parse response
  result[:@success] == 'true'
end

#update_propertiesBoolean

Returns:

  • (Boolean)


102
103
104
105
106
107
108
109
110
111
# File 'lib/inforouter/folder.rb', line 102

def update_properties
  request_params = {
    path: path,
    new_folder_name: name,
    new_description: description
  }
  response = Inforouter.client.request :update_folder_properties, request_params
  result = Inforouter::Responses::UpdateFolderProperties.parse response
  result[:@success] == 'true'
end

#update_property_setsBoolean

Returns:

  • (Boolean)


144
145
146
147
148
149
150
151
152
# File 'lib/inforouter/folder.rb', line 144

def update_property_sets
  request_params = {
    :path => path,
    'xmlpset' => PropertySet.to_xml(property_sets)
  }
  response = Inforouter.client.request :update_property_set_row, request_params
  result = Inforouter::Responses::UpdatePropertySetRow.parse response
  result[:@success] == 'true'
end

#update_rules(options = {}) ⇒ Boolean

Returns:

  • (Boolean)


157
158
159
160
161
162
163
164
165
166
167
# File 'lib/inforouter/folder.rb', line 157

def update_rules(options = {})
  options = { apply_to_tree: false }.merge(options)
  request_params = {
    :path => path,
    'xmlRules' => rules.to_hash,
    :apply_to_tree => options[:apply_to_tree] ? 1 : 0
  }
  response = Inforouter.client.request :set_folder_rules, request_params
  result = Inforouter::Responses::SetFolderRules.parse response
  result[:@success] == 'true'
end