circus-deployment 0.0.1 → 0.2

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.
@@ -10,7 +10,10 @@ module Circus
10
10
 
11
11
  def prepare_for_deploy(logger, overlay_dir)
12
12
  # Build the application
13
- run_external(logger, 'Compile application', "cd #{@dir}; make")
13
+ if File.exists?(File.join(@dir, 'Makefile'))
14
+ logger.info("Compiling #{@name}")
15
+ run_external(logger, 'Compile application', "cd #{@dir}; make")
16
+ end
14
17
  end
15
18
  end
16
19
  end
@@ -0,0 +1,117 @@
1
+ require 'rexml/document'
2
+ require 'erb'
3
+
4
+ module Circus
5
+ module Profiles
6
+ class MavenWebApp < Base
7
+ MAVEN_WEBAPP_PROPERTY='maven-webapp'
8
+
9
+ # Checks if this is a shell applcation. Will accept the application if it
10
+ # has a file named <name>.sh, or has a 'shell-app' property describing the entry point.
11
+ def self.accepts?(name, dir, props)
12
+ pom_path = File.join(dir, "pom.xml")
13
+
14
+ return true if props.include? MAVEN_WEBAPP_PROPERTY
15
+ return false unless File.exists?(pom_path)
16
+
17
+ pom_content = REXML::Document.new(File.new(pom_path))
18
+ packaging_el = pom_content.root.elements['packaging']
19
+ return false unless packaging_el
20
+
21
+ packaging_el.text.strip == 'war'
22
+ end
23
+
24
+ attr_reader :app_final_name
25
+
26
+ def initialize(name, dir, props)
27
+ super(name, dir, props)
28
+
29
+ @app_final_name = props[MAVEN_WEBAPP_PROPERTY] || detect_app_name
30
+ end
31
+
32
+ # The name of this profile
33
+ def name
34
+ "maven-war"
35
+ end
36
+
37
+ def dev_run_script_content
38
+ shell_run_script do
39
+ <<-EOT
40
+ cd #{@dir}
41
+ exec mvn jetty:run
42
+ EOT
43
+ end
44
+ end
45
+
46
+ def prepare_for_deploy(logger, overlay_dir)
47
+ # Build the maven package, then copy the output into the overlay directory
48
+ logger.info("Building maven application #{@name}")
49
+ return false unless run_external(logger, 'Perform maven packaging', "cd #{@dir}; mvn package -Dmaven.test.skip=true")
50
+
51
+ logger.info("Expanding artifact #{app_final_name}.war")
52
+ final_full_path = File.expand_path("target/#{app_final_name}.war")
53
+ return false unless run_external(logger,
54
+ 'Expand application artifact',
55
+ "mkdir #{overlay_dir}/#{@name} && unzip #{@dir}/target/#{app_final_name}.war -d #{overlay_dir}/#{@name}/")
56
+
57
+ logger.info("Generating configuration files for #{@name}")
58
+ write_template('maven_webapp_jetty.xml.erb', "#{overlay_dir}/jetty.xml")
59
+ write_template('maven_webapp_jetty_app.xml.erb', "#{overlay_dir}/jetty-app.xml")
60
+ File.open("#{overlay_dir}/jetty.properties", 'w') do |f|
61
+ f << "jetty.home=/opt/jetty-7.1"
62
+ end
63
+
64
+ true
65
+ end
66
+
67
+ def deploy_run_script_content
68
+ shell_run_script do
69
+ <<-EOT
70
+ exec java -jar /opt/jetty-7.1/start.jar -Djetty.home=/opt/jetty-7.1 OPTIONS=Server,plus,jndi `pwd`/jetty.properties `pwd`/jetty.xml `pwd`/jetty-app.xml
71
+ EOT
72
+ end
73
+ end
74
+
75
+ def package_base_dir?
76
+ false
77
+ end
78
+
79
+ private
80
+ def listen_port
81
+ @props['web-app-port'] || 8130
82
+ end
83
+
84
+ def amqp_connection_factories
85
+ @props['amqp-connections'] || []
86
+ end
87
+ def datasources
88
+ @props['datasources'] || []
89
+ end
90
+ def env_entries
91
+ @props['env-entries'] || []
92
+ end
93
+
94
+ def detect_app_name
95
+ effective_pom_path = "/tmp/#{name}-effective.pom"
96
+ `cd #{@dir}; mvn help:effective-pom -Doutput=#{effective_pom_path}`
97
+ unless $? == 0
98
+ raise "Failed to determine effective pom for maven webapp act #{name}"
99
+ end
100
+
101
+ pom_content = REXML::Document.new(File.new(effective_pom_path))
102
+ pom_content.root.elements['build/finalName'].text.strip
103
+ end
104
+
105
+ def write_template(template_name, out_name)
106
+ template_path = File.expand_path("../#{template_name}", __FILE__)
107
+ template_erb = ERB.new(File.read template_path)
108
+ template_erb.filename = template_path
109
+ File.open(out_name, 'w') do |f|
110
+ f.write(template_erb.result(binding))
111
+ end
112
+ end
113
+ end
114
+
115
+ PROFILES << MavenWebApp
116
+ end
117
+ end
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
3
+
4
+ <!-- =============================================================== -->
5
+ <!-- Configure the Jetty Server -->
6
+ <!-- -->
7
+ <!-- Documentation of this file format can be found at: -->
8
+ <!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax -->
9
+ <!-- -->
10
+ <!-- Additional configuration files are available in $JETTY_HOME/etc -->
11
+ <!-- and can be mixed in. For example: -->
12
+ <!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
13
+ <!-- -->
14
+ <!-- See start.ini file for the default configuraton files -->
15
+ <!-- =============================================================== -->
16
+
17
+
18
+ <Configure id="Server" class="org.eclipse.jetty.server.Server">
19
+ <!-- =========================================================== -->
20
+ <!-- Server Thread Pool -->
21
+ <!-- =========================================================== -->
22
+ <Set name="ThreadPool">
23
+ <!-- Default queued blocking threadpool -->
24
+ <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
25
+ <Set name="minThreads">10</Set>
26
+ <Set name="maxThreads">200</Set>
27
+ </New>
28
+ </Set>
29
+
30
+ <!-- =========================================================== -->
31
+ <!-- Set connectors -->
32
+ <!-- =========================================================== -->
33
+
34
+ <Call name="addConnector">
35
+ <Arg>
36
+ <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
37
+ <Set name="host"><Property name="jetty.host" /></Set>
38
+ <Set name="port"><%= listen_port %></Set>
39
+ <Set name="maxIdleTime">300000</Set>
40
+ <Set name="Acceptors">2</Set>
41
+ <Set name="statsOn">false</Set>
42
+ <!-- <Set name="confidentialPort">8443</Set> -->
43
+ <Set name="lowResourcesConnections">20000</Set>
44
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
45
+ </New>
46
+ </Arg>
47
+ </Call>
48
+
49
+ <!-- =========================================================== -->
50
+ <!-- Set handler Collection Structure -->
51
+ <!-- =========================================================== -->
52
+ <Set name="handler">
53
+ <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
54
+ <Set name="handlers">
55
+ <Array type="org.eclipse.jetty.server.Handler">
56
+ <Item>
57
+ <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
58
+ </Item>
59
+ <Item>
60
+ <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
61
+ </Item>
62
+ </Array>
63
+ </Set>
64
+ </New>
65
+ </Set>
66
+
67
+ <!-- =========================================================== -->
68
+ <!-- extra options -->
69
+ <!-- =========================================================== -->
70
+ <Set name="stopAtShutdown">true</Set>
71
+ <Set name="sendServerVersion">true</Set>
72
+ <Set name="sendDateHeader">true</Set>
73
+ <Set name="gracefulShutdown">1000</Set>
74
+ </Configure>
@@ -0,0 +1,56 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
3
+ <Configure id="Server" class="org.eclipse.jetty.server.Server">
4
+ <New class="org.eclipse.jetty.webapp.WebAppContext">
5
+ <Arg><Ref id="Contexts"/></Arg>
6
+ <Arg><%= @name %></Arg>
7
+ <Arg>/</Arg>
8
+
9
+ <Set name="ConfigurationClasses">
10
+ <Array type="java.lang.String">
11
+ <Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
12
+ <Item>org.eclipse.jetty.webapp.WebXmlConfiguration</Item>
13
+ <Item>org.eclipse.jetty.webapp.MetaInfConfiguration</Item>
14
+ <Item>org.eclipse.jetty.webapp.FragmentConfiguration</Item>
15
+ <Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
16
+ <Item>org.eclipse.jetty.plus.webapp.Configuration</Item>
17
+ <Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
18
+ <Item>org.eclipse.jetty.webapp.TagLibConfiguration</Item>
19
+ </Array>
20
+ </Set>
21
+
22
+ <% amqp_connection_factories.each do |cf| %>
23
+ <New class="org.eclipse.jetty.plus.jndi.Resource">
24
+ <Arg></Arg>
25
+ <Arg><%= cf['name'] %></Arg>
26
+ <Arg>
27
+ <New class="com.rabbitmq.client.ConnectionFactory">
28
+ <Set name="host"><%= cf['host'] %></Set>
29
+ </New>
30
+ </Arg>
31
+ </New>
32
+ <% end %>
33
+
34
+ <% datasources.each do |ds| %>
35
+ <New class="org.eclipse.jetty.plus.jndi.Resource">
36
+ <Arg></Arg>
37
+ <Arg><%= ds['name'] %></Arg>
38
+ <Arg>
39
+ <New class="org.apache.commons.dbcp.BasicDataSource">
40
+ <Set name="driverClassName">org.postgresql.Driver</Set>
41
+ <Set name="url">jdbc:postgresql://localhost/<%= ds['db_name'] %>?user=<%= ds['db_user'] %>&amp;password=<%= ds['db_password'] %></Set>
42
+ </New>
43
+ </Arg>
44
+ </New>
45
+ <% end %>
46
+
47
+ <% env_entries.each do |ee| %>
48
+ <New class="org.eclipse.jetty.plus.jndi.EnvEntry">
49
+ <Arg></Arg>
50
+ <Arg><%= ee['name'] %></Arg>
51
+ <Arg type="<%= ee['type'] %>"><%= ee['value']%></Arg>
52
+ <Arg type="boolean">true</Arg>
53
+ </New>
54
+ <% end %>
55
+ </New>
56
+ </Configure>
@@ -10,11 +10,11 @@ module Circus
10
10
 
11
11
  def prepare_for_deploy(logger, overlay_dir)
12
12
  # Build the virtualenv
13
- if has_depsfile?
14
- unless File.exists? "#{@dir}/vendor"
15
- return false unless run_external(logger, "Create virtualenv", "cd #{@dir}; virtualenv --no-site-packages vendor")
16
- end
13
+ unless File.exists? "#{@dir}/vendor"
14
+ return false unless run_external(logger, "Create virtualenv", "cd #{@dir}; virtualenv --no-site-packages vendor")
15
+ end
17
16
 
17
+ if has_depsfile?
18
18
  File.read(depsfile_fn).lines.each do |dep|
19
19
  return false unless run_external(logger, "Install dep #{dep}",
20
20
  "cd #{@dir}; vendor/bin/easy_install -q \"#{dep.strip}\"")
@@ -36,4 +36,4 @@ module Circus
36
36
  end
37
37
  end
38
38
  end
39
- end
39
+ end
@@ -35,17 +35,21 @@ module Circus
35
35
  def deploy_run_script_content
36
36
  shell_run_script do
37
37
  <<-EOT
38
- exec bundle exec vendor/bin/thin -R #{@rackup_name} -p #{listen_port} start
38
+ exec bundle exec thin -R #{@rackup_name} -p #{listen_port} start
39
39
  EOT
40
40
  end
41
41
  end
42
42
 
43
- def extra_dirs
44
- if has_gemfile?
45
- ["#{@dir}/.bundle"]
46
- else
47
- []
48
- end
43
+ # Describes the requirements of the deployed application. Rack applications automatically
44
+ # have an environment system property applied for RACK_ENV and RAILS_ENV
45
+ def requirements
46
+ res = super
47
+
48
+ res['system-properties'] ||= {}
49
+ res['system-properties']['RACK_ENV'] = 'production'
50
+ res['system-properties']['RAILS_ENV'] = 'production'
51
+
52
+ res
49
53
  end
50
54
 
51
55
  private
@@ -5,21 +5,30 @@ require 'bundler/circus_util'
5
5
  module Circus
6
6
  module Profiles
7
7
  class RubyBase < Base
8
- BUNDLER_TOOL=File.expand_path('../../../bundler/circus_bundler.rb', __FILE__)
8
+ BUNDLER_TOOL=File.expand_path('../../../bundler/gem_cacher.rb', __FILE__)
9
9
 
10
10
  def initialize(name, dir, props)
11
11
  super(name, dir, props)
12
12
  end
13
13
 
14
- # No dev preparation required. Don't override dev_run_script_content, since it is the
14
+ # Do basic gemfile preparation for dev. Don't override dev_run_script_content, since it is the
15
15
  # same as the deployment variant.
16
- def prepare_for_dev(logger, run_dir); true; end
16
+ def prepare_for_dev(logger, run_dir)
17
+ if has_gemfile?
18
+ # TODO: Correct behaviour if working in the presence of an existing bundler environment
19
+ run_external(logger, 'gem installation', "cd #{@dir}; bundle check || bundle install")
20
+ end
21
+
22
+ true
23
+ end
17
24
 
18
25
  def prepare_for_deploy(logger, overlay_dir)
19
26
  # Run the gem bundler if necessary
20
27
  if has_gemfile?
21
28
  logger.info("Bundling gems")
22
- run_external(logger, 'gem bundling', "cd #{@dir}; ruby #{BUNDLER_TOOL}")
29
+ return false unless run_external(logger, 'gem installation', "cd #{@dir}; bundle install")
30
+ return false unless run_external(logger, 'gem caching',
31
+ "cd #{@dir}; ruby #{BUNDLER_TOOL} && rm Gemfile.lock && bundle install vendor/bundle")
23
32
  end
24
33
 
25
34
  true
@@ -29,7 +29,8 @@ module Circus
29
29
  end
30
30
 
31
31
  def current_revision
32
- `(cd #{@dir}; git rev-parse HEAD)`.strip
32
+ result = `(cd #{@dir}; git rev-parse HEAD)`
33
+ return result.strip unless $?.exitstatus != 0
33
34
  end
34
35
 
35
36
  def write_patch(patch_fn)
@@ -1,3 +1,3 @@
1
1
  module Circus
2
- VERSION = "0.0.1"
2
+ VERSION = "0.2"
3
3
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: circus-deployment
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: "0.2"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Paul Jones
@@ -14,16 +14,18 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-20 00:00:00 +01:00
17
+ date: 2010-11-06 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
28
+ hash: 3
27
29
  segments:
28
30
  - 0
29
31
  version: "0"
@@ -33,9 +35,11 @@ dependencies:
33
35
  name: thor
34
36
  prerelease: false
35
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
36
39
  requirements:
37
40
  - - ">="
38
41
  - !ruby/object:Gem::Version
42
+ hash: 35
39
43
  segments:
40
44
  - 0
41
45
  - 13
@@ -47,9 +51,11 @@ dependencies:
47
51
  name: uuid
48
52
  prerelease: false
49
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
50
55
  requirements:
51
56
  - - "="
52
57
  - !ruby/object:Gem::Version
58
+ hash: 13
53
59
  segments:
54
60
  - 2
55
61
  - 0
@@ -61,9 +67,11 @@ dependencies:
61
67
  name: net-ssh
62
68
  prerelease: false
63
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
64
71
  requirements:
65
72
  - - "="
66
73
  - !ruby/object:Gem::Version
74
+ hash: 35
67
75
  segments:
68
76
  - 2
69
77
  - 0
@@ -75,9 +83,11 @@ dependencies:
75
83
  name: net-scp
76
84
  prerelease: false
77
85
  requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
78
87
  requirements:
79
88
  - - "="
80
89
  - !ruby/object:Gem::Version
90
+ hash: 19
81
91
  segments:
82
92
  - 1
83
93
  - 0
@@ -85,6 +95,22 @@ dependencies:
85
95
  version: 1.0.2
86
96
  type: :runtime
87
97
  version_requirements: *id005
98
+ - !ruby/object:Gem::Dependency
99
+ name: json_pure
100
+ prerelease: false
101
+ requirement: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - "="
105
+ - !ruby/object:Gem::Version
106
+ hash: 11
107
+ segments:
108
+ - 1
109
+ - 4
110
+ - 6
111
+ version: 1.4.6
112
+ type: :runtime
113
+ version_requirements: *id006
88
114
  description: Circus provides the ability to deploy multi-component applications easily
89
115
  email:
90
116
  - pauljones23@gmail.com
@@ -96,96 +122,100 @@ extra_rdoc_files: []
96
122
 
97
123
  files:
98
124
  - bin/circus
99
- - lib/circus/act.rb
100
- - lib/circus/clown_client.rb
101
- - lib/circus/actstore_client.rb
102
- - lib/circus/external_util.rb
103
- - lib/circus/profiles/shell.rb
104
- - lib/circus/profiles/django.rb
105
- - lib/circus/profiles/jekyll.rb
106
- - lib/circus/profiles/make_base.rb
107
- - lib/circus/profiles/rack.rb
108
- - lib/circus/profiles/ruby_base.rb
109
- - lib/circus/profiles/pure_py.rb
110
- - lib/circus/profiles/python_base.rb
111
- - lib/circus/profiles/pure_rb.rb
112
- - lib/circus/profiles/base.rb
113
- - lib/circus/local_config.rb
114
- - lib/circus/connection_builder.rb
125
+ - lib/bundler/patches.rb
126
+ - lib/bundler/circus_util.rb
127
+ - lib/bundler/circus_bundler.rb
128
+ - lib/bundler/gem_cacher.rb
129
+ - lib/circus/application.rb
115
130
  - lib/circus/stdout_logger.rb
116
- - lib/circus/resource_allocator_client.rb
117
- - lib/circus/repos/mercurial.rb
118
- - lib/circus/repos/git.rb
119
- - lib/circus/agents/dbus_connection.rb
131
+ - lib/circus/actstore_client.rb
132
+ - lib/circus/clown_client.rb
133
+ - lib/circus/processes/daemontools.rb
134
+ - lib/circus/act.rb
120
135
  - lib/circus/agents/dbus_logger.rb
121
- - lib/circus/agents/client.rb
122
- - lib/circus/agents/agent.rb
136
+ - lib/circus/agents/conversation.rb
137
+ - lib/circus/agents/dbus_connection.rb
123
138
  - lib/circus/agents/encoding.rb
124
139
  - lib/circus/agents/params.rb
125
140
  - lib/circus/agents/connection.rb
141
+ - lib/circus/agents/client.rb
126
142
  - lib/circus/agents/ssh_connection.rb
127
- - lib/circus/agents/logger.rb
128
- - lib/circus/agents/conversation.rb
129
- - lib/circus/cli.rb
130
- - lib/circus/application.rb
143
+ - lib/circus/connection_builder.rb
144
+ - lib/circus/booth_client.rb
131
145
  - lib/circus/profiles.rb
132
- - lib/circus/repos.rb
133
146
  - lib/circus/version.rb
134
- - lib/circus/booth_client.rb
147
+ - lib/circus/local_config.rb
135
148
  - lib/circus/booth_tool.rb
149
+ - lib/circus/cli.rb
150
+ - lib/circus/resource_allocator_client.rb
151
+ - lib/circus/external_util.rb
152
+ - lib/circus/repos/git.rb
153
+ - lib/circus/repos/mercurial.rb
154
+ - lib/circus/repos.rb
155
+ - lib/circus/profiles/rack.rb
156
+ - lib/circus/profiles/ruby_base.rb
157
+ - lib/circus/profiles/maven_webapp.rb
158
+ - lib/circus/profiles/pure_py.rb
159
+ - lib/circus/profiles/chef_stack.rb
160
+ - lib/circus/profiles/maven_webapp_jetty.xml.erb
161
+ - lib/circus/profiles/jekyll.rb
162
+ - lib/circus/profiles/make_base.rb
163
+ - lib/circus/profiles/shell.rb
164
+ - lib/circus/profiles/pure_rb.rb
165
+ - lib/circus/profiles/maven_webapp_jetty_app.xml.erb
166
+ - lib/circus/profiles/python_base.rb
167
+ - lib/circus/profiles/django.rb
168
+ - lib/circus/profiles/base.rb
136
169
  - lib/circus.rb
137
- - lib/bundler/patches.rb
138
- - lib/bundler/circus_bundler.rb
139
- - lib/bundler/circus_util.rb
140
- - vendor/ruby-dbus/doc/tutorial/src/default.template
141
- - vendor/ruby-dbus/doc/tutorial/src/10.intro.page
142
- - vendor/ruby-dbus/doc/tutorial/src/00.index.page
143
- - vendor/ruby-dbus/doc/tutorial/src/30.service.page
144
- - vendor/ruby-dbus/doc/tutorial/src/default.css
145
- - vendor/ruby-dbus/doc/tutorial/src/20.basic_client.page
146
- - vendor/ruby-dbus/setup.rb
147
- - vendor/ruby-dbus/ChangeLog
148
- - vendor/ruby-dbus/lib/dbus.rb
149
- - vendor/ruby-dbus/lib/dbus/export.rb
150
- - vendor/ruby-dbus/lib/dbus/type.rb
151
- - vendor/ruby-dbus/lib/dbus/auth.rb
152
- - vendor/ruby-dbus/lib/dbus/message.rb
153
- - vendor/ruby-dbus/lib/dbus/bus.rb
154
- - vendor/ruby-dbus/lib/dbus/marshall.rb
155
- - vendor/ruby-dbus/lib/dbus/matchrule.rb
156
- - vendor/ruby-dbus/lib/dbus/introspect.rb
157
- - vendor/ruby-dbus/README
158
- - vendor/ruby-dbus/HOWTO-RELEASE
159
- - vendor/ruby-dbus/NEWS
160
170
  - vendor/ruby-dbus/Rakefile
161
- - vendor/ruby-dbus/examples/service/service_newapi.rb
162
- - vendor/ruby-dbus/examples/service/call_service.rb
171
+ - vendor/ruby-dbus/HOWTO-RELEASE
172
+ - vendor/ruby-dbus/ChangeLog
173
+ - vendor/ruby-dbus/COPYING
174
+ - vendor/ruby-dbus/examples/utils/listnames.rb
175
+ - vendor/ruby-dbus/examples/utils/notify.rb
163
176
  - vendor/ruby-dbus/examples/simple/call_introspect.rb
164
177
  - vendor/ruby-dbus/examples/rhythmbox/playpause.rb
165
- - vendor/ruby-dbus/examples/no-introspect/nm-test.rb
166
- - vendor/ruby-dbus/examples/no-introspect/tracker-test.rb
167
178
  - vendor/ruby-dbus/examples/gdbus/gdbus
168
- - vendor/ruby-dbus/examples/gdbus/gdbus.glade
169
179
  - vendor/ruby-dbus/examples/gdbus/launch.sh
170
- - vendor/ruby-dbus/examples/utils/notify.rb
171
- - vendor/ruby-dbus/examples/utils/listnames.rb
172
- - vendor/ruby-dbus/ruby-dbus.gemspec
180
+ - vendor/ruby-dbus/examples/gdbus/gdbus.glade
181
+ - vendor/ruby-dbus/examples/service/service_newapi.rb
182
+ - vendor/ruby-dbus/examples/service/call_service.rb
183
+ - vendor/ruby-dbus/examples/no-introspect/tracker-test.rb
184
+ - vendor/ruby-dbus/examples/no-introspect/nm-test.rb
185
+ - vendor/ruby-dbus/lib/dbus.rb
186
+ - vendor/ruby-dbus/lib/dbus/bus.rb
187
+ - vendor/ruby-dbus/lib/dbus/message.rb
188
+ - vendor/ruby-dbus/lib/dbus/introspect.rb
189
+ - vendor/ruby-dbus/lib/dbus/matchrule.rb
190
+ - vendor/ruby-dbus/lib/dbus/auth.rb
191
+ - vendor/ruby-dbus/lib/dbus/marshall.rb
192
+ - vendor/ruby-dbus/lib/dbus/export.rb
193
+ - vendor/ruby-dbus/lib/dbus/type.rb
194
+ - vendor/ruby-dbus/setup.rb
195
+ - vendor/ruby-dbus/NEWS
196
+ - vendor/ruby-dbus/README
197
+ - vendor/ruby-dbus/test/variant_test.rb
198
+ - vendor/ruby-dbus/test/t6-loop.rb
173
199
  - vendor/ruby-dbus/test/server_test.rb
174
- - vendor/ruby-dbus/test/test_server
175
- - vendor/ruby-dbus/test/t1
176
200
  - vendor/ruby-dbus/test/service_newapi.rb
177
- - vendor/ruby-dbus/test/bus_driver_test.rb
178
- - vendor/ruby-dbus/test/t6-loop.rb
179
201
  - vendor/ruby-dbus/test/server_robustness_test.rb
180
202
  - vendor/ruby-dbus/test/t3-ticket27.rb
181
203
  - vendor/ruby-dbus/test/test_all
182
- - vendor/ruby-dbus/test/t5-report-dbus-interface.rb
183
- - vendor/ruby-dbus/test/variant_test.rb
204
+ - vendor/ruby-dbus/test/test_server
205
+ - vendor/ruby-dbus/test/t1
206
+ - vendor/ruby-dbus/test/signal_test.rb
184
207
  - vendor/ruby-dbus/test/t2.rb
208
+ - vendor/ruby-dbus/test/bus_driver_test.rb
185
209
  - vendor/ruby-dbus/test/session_bus_test_manual.rb
186
- - vendor/ruby-dbus/test/signal_test.rb
187
210
  - vendor/ruby-dbus/test/Makefile
188
- - vendor/ruby-dbus/COPYING
211
+ - vendor/ruby-dbus/test/t5-report-dbus-interface.rb
212
+ - vendor/ruby-dbus/doc/tutorial/src/30.service.page
213
+ - vendor/ruby-dbus/doc/tutorial/src/default.css
214
+ - vendor/ruby-dbus/doc/tutorial/src/00.index.page
215
+ - vendor/ruby-dbus/doc/tutorial/src/10.intro.page
216
+ - vendor/ruby-dbus/doc/tutorial/src/20.basic_client.page
217
+ - vendor/ruby-dbus/doc/tutorial/src/default.template
218
+ - vendor/ruby-dbus/ruby-dbus.gemspec
189
219
  - LICENSE
190
220
  - README.md
191
221
  has_rdoc: true
@@ -199,16 +229,20 @@ require_paths:
199
229
  - lib
200
230
  - vendor/ruby-dbus/lib
201
231
  required_ruby_version: !ruby/object:Gem::Requirement
232
+ none: false
202
233
  requirements:
203
234
  - - ">="
204
235
  - !ruby/object:Gem::Version
236
+ hash: 3
205
237
  segments:
206
238
  - 0
207
239
  version: "0"
208
240
  required_rubygems_version: !ruby/object:Gem::Requirement
241
+ none: false
209
242
  requirements:
210
243
  - - ">="
211
244
  - !ruby/object:Gem::Version
245
+ hash: 31
212
246
  segments:
213
247
  - 1
214
248
  - 3
@@ -217,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
251
  requirements: []
218
252
 
219
253
  rubyforge_project:
220
- rubygems_version: 1.3.6
254
+ rubygems_version: 1.3.7
221
255
  signing_key:
222
256
  specification_version: 3
223
257
  summary: Deploying the circus that is your application