ruby_aem 0.9.0

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/ruby_aem.rb ADDED
@@ -0,0 +1,163 @@
1
+ =begin
2
+ Copyright 2016 Shine Solutions
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ =end
16
+
17
+ require 'ruby_aem/bundle'
18
+ require 'ruby_aem/client'
19
+ require 'ruby_aem/config_property'
20
+ require 'ruby_aem/flush_agent'
21
+ require 'ruby_aem/group'
22
+ require 'ruby_aem/node'
23
+ require 'ruby_aem/package'
24
+ require 'ruby_aem/path'
25
+ require 'ruby_aem/replication_agent'
26
+ require 'ruby_aem/repository'
27
+ require 'ruby_aem/user'
28
+ require 'swagger_aem'
29
+ require 'yaml'
30
+
31
+ module RubyAem
32
+ # Aem class represents an AEM client instance.
33
+ class Aem
34
+
35
+ # Initialise a Ruby AEM instance.
36
+ #
37
+ # @param conf configuration hash of the following configuration values:
38
+ # - username: username used to authenticate to AEM instance
39
+ # - password: password used to authenticate to AEM instance
40
+ # - protocol: AEM instance protocol (http or https)
41
+ # - host: AEM instance host name
42
+ # - port: AEM instance port
43
+ # - debug: if true, then additional debug messages will be included
44
+ # @return new RubyAem::Aem instance
45
+ def initialize(conf = {})
46
+
47
+ conf[:username] ||= 'admin'
48
+ conf[:password] ||= 'admin'
49
+ conf[:protocol] ||= 'http'
50
+ conf[:host] ||= 'localhost'
51
+ conf[:port] ||= 4502
52
+ conf[:debug] ||= false
53
+
54
+ SwaggerAemClient.configure { |swagger_conf| [
55
+ swagger_conf.host = "#{conf[:protocol]}://#{conf[:host]}:#{conf[:port]}",
56
+ swagger_conf.username = conf[:username],
57
+ swagger_conf.password = conf[:password],
58
+ swagger_conf.debugging = conf[:debug],
59
+ swagger_conf.params_encoding = :multi
60
+ ]}
61
+
62
+ apis = {
63
+ :console => SwaggerAemClient::ConsoleApi.new,
64
+ :cq => SwaggerAemClient::CqApi.new,
65
+ :crx => SwaggerAemClient::CrxApi.new,
66
+ :sling => SwaggerAemClient::SlingApi.new
67
+ }
68
+
69
+ spec = YAML.load_file(File.expand_path('../../conf/spec.yaml', __FILE__))
70
+
71
+ @client = RubyAem::Client.new(apis, spec)
72
+ end
73
+
74
+ # Create a bundle instance.
75
+ #
76
+ # @param name the bundle's name, e.g. com.adobe.cq.social.cq-social-forum
77
+ # @return new RubyAem::Bundle instance
78
+ def bundle(name)
79
+ RubyAem::Bundle.new(@client, name)
80
+ end
81
+
82
+ # Create a path instance.
83
+ #
84
+ # @param name the name of the path, e.g. /etc/designs
85
+ # @return new RubyAem::Path instance
86
+ def path(name)
87
+ RubyAem::Path.new(@client, name)
88
+ end
89
+
90
+ # Create a config property instance.
91
+ #
92
+ # @param name the property's name
93
+ # @param type the property's type, e.g. Boolean
94
+ # @param value the property's value, e.g. true
95
+ # @return new RubyAem::ConfigProperty instance
96
+ def config_property(name, type, value)
97
+ RubyAem::ConfigProperty.new(@client, name, type, value)
98
+ end
99
+
100
+ # Create a flush agent instance.
101
+ #
102
+ # @param run_mode AEM run mode: author or publish
103
+ # @param name the flush agent's name, e.g. some-flush-agent
104
+ # @return new RubyAem::FlushAgent instance
105
+ def flush_agent(name, run_mode)
106
+ RubyAem::FlushAgent.new(@client, name, run_mode)
107
+ end
108
+
109
+ # Create a group instance.
110
+ #
111
+ # @param path the path to group node, e.g. /home/groups/s/
112
+ # @param name the name of the AEM group, e.g. somegroup
113
+ # @return new RubyAem::Group instance
114
+ def group(path, name)
115
+ RubyAem::Group.new(@client, path, name)
116
+ end
117
+
118
+ # Create a node instance.
119
+ #
120
+ # @param path the path to the node, e.g. /apps/system/
121
+ # @param name the node name, e.g. somenode
122
+ # @return new RubyAem::Node instance
123
+ def node(path, name)
124
+ RubyAem::Node.new(@client, path, name)
125
+ end
126
+
127
+ # Create a package instance.
128
+ #
129
+ # @param group_name the group name of the package, e.g. somepackagegroup
130
+ # @param package_name the name of the package, e.g. somepackage
131
+ # @param package_version the version of the package, e.g. 1.2.3
132
+ # @return new RubyAem::Package instance
133
+ def package(group_name, package_name, package_version)
134
+ RubyAem::Package.new(@client, group_name, package_name, package_version)
135
+ end
136
+
137
+ # Create a replication agent instance.
138
+ #
139
+ # @param run_mode AEM run mode: author or publish
140
+ # @param name the replication agent's name, e.g. some-replication-agent
141
+ # @return new RubyAem::ReplicationAgent instance
142
+ def replication_agent(name, run_mode)
143
+ RubyAem::ReplicationAgent.new(@client, name, run_mode)
144
+ end
145
+
146
+ # Create a repository instance.
147
+ #
148
+ # @return new RubyAem::Repository instance
149
+ def repository
150
+ RubyAem::Repository.new(@client)
151
+ end
152
+
153
+ # Create a user instance.
154
+ #
155
+ # @param path the path to user node, e.g. /home/users/s/
156
+ # @param name the username of the AEM user, e.g. someuser, admin, johncitizen
157
+ # @return new RubyAem::User instance
158
+ def user(path, name)
159
+ RubyAem::User.new(@client, path, name)
160
+ end
161
+
162
+ end
163
+ end
metadata ADDED
@@ -0,0 +1,147 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_aem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Shine Solutions
8
+ - Cliffano Subagio
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-09-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.6'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.6.8
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.6'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.8
34
+ - !ruby/object:Gem::Dependency
35
+ name: swagger_aem
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.1
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '0.9'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.1
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.4'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 3.4.0
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.4'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 3.4.0
74
+ - !ruby/object:Gem::Dependency
75
+ name: yard
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.9'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.9.5
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.9'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 0.9.5
94
+ description: ruby_aem is a Ruby client for Adobe Experience Manager (AEM) API, written
95
+ on top of swagger_aem
96
+ email:
97
+ - opensource@shinesolutions.com
98
+ - cliffano@gmail.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - conf/spec.yaml
104
+ - lib/ruby_aem.rb
105
+ - lib/ruby_aem/bundle.rb
106
+ - lib/ruby_aem/client.rb
107
+ - lib/ruby_aem/config_property.rb
108
+ - lib/ruby_aem/flush_agent.rb
109
+ - lib/ruby_aem/group.rb
110
+ - lib/ruby_aem/handlers/file.rb
111
+ - lib/ruby_aem/handlers/html.rb
112
+ - lib/ruby_aem/handlers/json.rb
113
+ - lib/ruby_aem/handlers/simple.rb
114
+ - lib/ruby_aem/handlers/xml.rb
115
+ - lib/ruby_aem/node.rb
116
+ - lib/ruby_aem/package.rb
117
+ - lib/ruby_aem/path.rb
118
+ - lib/ruby_aem/replication_agent.rb
119
+ - lib/ruby_aem/repository.rb
120
+ - lib/ruby_aem/result.rb
121
+ - lib/ruby_aem/swagger.rb
122
+ - lib/ruby_aem/user.rb
123
+ homepage: https://github.com/shinesolutions/ruby_aem
124
+ licenses:
125
+ - Apache 2.0
126
+ metadata: {}
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '1.9'
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ requirements: []
142
+ rubyforge_project:
143
+ rubygems_version: 2.2.2
144
+ signing_key:
145
+ specification_version: 4
146
+ summary: AEM API Ruby client
147
+ test_files: []