adaptation 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -0
- data/README +135 -34
- data/bin/about +0 -2
- data/bin/console +4 -5
- data/bin/destroy +11 -1
- data/bin/generate +11 -1
- data/bin/publish +1 -6
- data/bin/subscribe +1 -6
- data/configs/boot.rb +10 -8
- data/dispatches/dispatch.rb +1 -5
- data/environments/development.rb +1 -0
- data/environments/environment.rb +3 -0
- data/environments/test.rb +1 -0
- data/lib/adaptation/base.rb +7 -9
- data/lib/adaptation/test/test_help.rb +5 -5
- data/lib/adaptation/version.rb +2 -2
- data/lib/commands/console.rb +29 -18
- data/lib/commands/subscribe.rb +0 -2
- data/lib/rails_generator/generators/applications/app/app_generator.rb +5 -4
- metadata +5 -5
- data/bin/breakpointer +0 -3
- data/lib/adaptation/console/environment.rb +0 -42
- data/lib/commands/adaptor_path.rb +0 -1
data/CHANGELOG
CHANGED
@@ -52,3 +52,9 @@
|
|
52
52
|
- added deprecated method Adaptation::Message#check for backwards compatibility
|
53
53
|
- corrected path in base.rb to find settings.yml using ADAPTOR_ROOT
|
54
54
|
- forced ActiveRecord versions 2.2.2 (2.3.x breaks tests)
|
55
|
+
* 0.1.7
|
56
|
+
- improved documentation (README)
|
57
|
+
- console options, ruby-debug optional
|
58
|
+
- console options: environment
|
59
|
+
- boot is (usually) done using config/boot.rb, except when forcing the
|
60
|
+
environment
|
data/README
CHANGED
@@ -2,52 +2,148 @@
|
|
2
2
|
|
3
3
|
Adaptation is a framework that tries to facilitate data interchange
|
4
4
|
between applications. Applications send and receive xml messages through
|
5
|
-
a message oriented middleware using a publish/subscribe pattern:
|
5
|
+
a message oriented middleware (<b>mom</b>) using a <b>publish/subscribe</b> pattern:
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
Example:
|
8
|
+
|
9
|
+
Application A publishes messages on topic "messages from A", and all
|
10
|
+
applications interested on reading messages from A subscribe to that topic.
|
9
11
|
|
10
12
|
Adaptation focuses on facilitate building _adaptors_. _adaptors_ are programs
|
11
13
|
that are executed for an application subscribed to a topic, when a message is
|
12
14
|
received on that topic.
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
16
|
+
Adaptation is highly inspired by {Ruby on Rails}[http://rubyonrails.org] web
|
17
|
+
framework, so _adaptors_ are built in a similar way that web apps are built
|
18
|
+
using the RoR[http://rubyonrails.org] framework.
|
19
|
+
|
20
|
+
When building an _adaptor_, logic will be stored into Adaptation::Adaptor objects, and
|
21
|
+
mapping of xml data messages will be performed by Adaptation::Message objects.
|
22
|
+
|
23
|
+
Adaptation can use ActiveRecord[http://api.rubyonrails.org/classes/ActiveRecord/Base.html]
|
24
|
+
based models for data interaction with databases.
|
25
|
+
|
26
|
+
|
27
|
+
== Installation
|
28
|
+
|
29
|
+
Adaptation is available as a ruby gem, so the easiest way should be:
|
30
|
+
|
31
|
+
> gem install adaptation
|
32
|
+
|
33
|
+
|
34
|
+
== Usage
|
35
|
+
|
36
|
+
1. At the command prompt, start a new adaptation adaptor using the _adaptation_ command
|
37
|
+
and your adaptor name:
|
38
|
+
|
39
|
+
> adaptation myadaptor
|
40
|
+
|
41
|
+
This will generate a an adaptor file tree under folder _myadaptor_.
|
42
|
+
|
43
|
+
2. If no message oriented middleware has been already set, change directory into _myadaptor_
|
44
|
+
and start the <b>mom</b>:
|
45
|
+
|
46
|
+
> mom
|
47
|
+
|
48
|
+
This will start a <b>mom</b> in _localhost_ (default), listening on port <em>8080</em> (default).
|
49
|
+
|
50
|
+
3. Subscribe your adaptor to the <b>mom</b>, so it will be executed when a message is received on
|
51
|
+
a topic your adaptor is interested in:
|
52
|
+
|
53
|
+
> script/subscribe
|
54
|
+
|
55
|
+
By default this will try to subscribe to a *mom* listening on <em>localhost:8080</em>, using port
|
56
|
+
<em>8081</em> to subscribe (subscribing means starting a new server that listens for
|
57
|
+
message publication notifications). These values can be changed editing <em>config/mom.yml</em>. In <em>mom.yml</em>
|
38
58
|
you can also specify wich topics your adaptor is interested in.
|
39
|
-
4. Start developing your adaptor, probably generating __Adaptors__[link:../rdoc/classes/Adaptation/Adaptor.html], __Messages__[link:../rdoc/classes/Adaptation/Message.html]
|
40
|
-
and __Models__[http://api.rubyonrails.org/classes/ActiveRecord/Base.html].
|
41
59
|
|
60
|
+
4. Right now you should have a <b>mom</b>_ listening for messages on <em>localhost:8080</em>, and an _adaptor_
|
61
|
+
subscribed to that *mom* and listening on <em>localhost:8081</em>, and interested in all topics available.
|
62
|
+
|
63
|
+
This environment can be tested by executing the following from _myadaptor_ folder:
|
64
|
+
|
65
|
+
> ruby script/publish NEWS '<helloworld/>'
|
66
|
+
|
67
|
+
The previous command should publish de xml <em><helloworld/></em> message into topic _NEWS_ from the *mom*.
|
68
|
+
This message should be displayed in the subscriber terminal when delivered by the *mom*.
|
69
|
+
Nothing would be executed, because a _Helloworld_ message[link:../rdoc/classes/Adaptation/Message.html] to
|
70
|
+
map this xml message and a _HelloworldAdaptor_[link:../rdoc/classes/Adaptation/Adaptor.html] to process it don't
|
71
|
+
exist yet. Since these classes aren't implemented, Adaptation will pass the message as a xml _String_ to the
|
72
|
+
default _ApplicationAdaptor_ adaptor, but its _process_ method is still empty, so nothing will happen.
|
73
|
+
|
74
|
+
To see something happening the _process_ method in the default _ApplicationAdaptor_ could be implemented,
|
75
|
+
editing file <em>myadaptor/app/adaptors/application.rb</em>:
|
76
|
+
|
77
|
+
class ApplicationAdaptor < Adaptation::Adaptor
|
78
|
+
|
79
|
+
def process message
|
80
|
+
logger.info "Received message #{message}"
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
Now, if the previous <em><helloword/></em> message is published, that should be visible
|
86
|
+
in <em>log/development.log</em>.
|
87
|
+
|
88
|
+
The other way this can be done is by creating _Helloworld_ Adaptation::Message class to
|
89
|
+
map the xml data:
|
90
|
+
|
91
|
+
> ruby script/generate message helloworld
|
92
|
+
exists app/messages/
|
93
|
+
exists test/unit/
|
94
|
+
exists test/fixtures/
|
95
|
+
create app/messages/helloworld.rb
|
96
|
+
create test/unit/helloworld_test.rb
|
97
|
+
create test/fixtures/helloworld.xml
|
98
|
+
|
99
|
+
The file we care about right now is <em>app/messages/helloworld.rb</em>:
|
100
|
+
|
101
|
+
class Helloworld < Adaptation::Message
|
102
|
+
end
|
103
|
+
|
104
|
+
We can leave it like this by now, and proceed to generate the _HelloworldAdaptor_ Adaptation::Adaptor class:
|
105
|
+
|
106
|
+
> ruby script/generate adaptor helloworld
|
107
|
+
exists app/adaptors/
|
108
|
+
exists test/functional/
|
109
|
+
create app/adaptors/helloworld_adaptor.rb
|
110
|
+
create test/functional/helloworld_adaptor_test.rb
|
111
|
+
|
112
|
+
and to edit <em>app/adaptors/helloworld_adaptor</em> to make something happen
|
113
|
+
when a message is received:
|
114
|
+
|
115
|
+
class HelloworldAdaptor < ApplicationAdaptor
|
116
|
+
|
117
|
+
def process helloworld
|
118
|
+
logger.info "Received message: #{helloworld.to_xml.to_s}"
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
We can notice that _helloworld_ variable is not a _String_ now, because Adaptation
|
124
|
+
has been able to map it to a Adaptation::Message object, and that the _HelloworldAdaptor_
|
125
|
+
inherits from _ApplicationAdaptor_, so functionality repeated in different _Adaptors_[link:../rdoc/classes/Adaptation/Adaptor.html]
|
126
|
+
can be placed in _ApplicationAdaptor_.
|
127
|
+
|
42
128
|
|
43
129
|
== Moms
|
44
130
|
|
45
|
-
By default, Adaptation will try to use druby to execute the built-in Ruby mom
|
46
|
-
mom is suitable for development, but not for production. For a production environment
|
131
|
+
By default, Adaptation will try to use druby to execute the built-in Ruby *mom*. This
|
132
|
+
*mom* is suitable for development, but not for production. For a production environment
|
47
133
|
a more stable solution like Xmlblaster[http://www.xmlblaster.org] should be chosen.
|
48
134
|
|
135
|
+
Different message brokers can be configured in <em>config/mom.yml</em>, and example
|
136
|
+
configuration for supported *moms* are present in the same file when an _adaptor_ is
|
137
|
+
generated with the <em>adaptation</em> command.
|
49
138
|
|
50
|
-
|
139
|
+
When we want to publish/subscribe to a *mom* different than the default druby, we
|
140
|
+
can do so by adding the <em>MOM=mom_type</em> option:
|
141
|
+
|
142
|
+
> ruby script/subscribe MOM=xmlblaster
|
143
|
+
> ruby script/publish MOM=xmlblaster topic message
|
144
|
+
|
145
|
+
|
146
|
+
== Description of an _adaptor_ file tree:
|
51
147
|
|
52
148
|
app
|
53
149
|
Holds all the code that's specific to this particular adaptor.
|
@@ -79,8 +175,7 @@ lib
|
|
79
175
|
belong under adaptors, models, or messages.
|
80
176
|
|
81
177
|
public
|
82
|
-
The directory available for
|
83
|
-
application must be aware of, like a tool for publishing messages to the mom.
|
178
|
+
The directory available for calling the adaptor (contains dispatch.rb).
|
84
179
|
|
85
180
|
script
|
86
181
|
Helper scripts for automation and generation.
|
@@ -89,3 +184,9 @@ test
|
|
89
184
|
Unit and functional tests along with fixtures. When using the script/generate scripts, template
|
90
185
|
test files will be generated for you and placed in this directory.
|
91
186
|
|
187
|
+
|
188
|
+
== Debugging
|
189
|
+
<em>TODO: ruby script/console + ruby-debug</em>
|
190
|
+
|
191
|
+
== Testing
|
192
|
+
<em>TODO</em>
|
data/bin/about
CHANGED
data/bin/console
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
4
|
-
end
|
5
|
-
require "#{ADAPTOR_ROOT}/config/boot"
|
2
|
+
|
3
|
+
ADAPTOR_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(ADAPTOR_ROOT)
|
6
4
|
require 'rubygems'
|
7
|
-
|
5
|
+
require 'adaptation'
|
6
|
+
|
8
7
|
require 'commands/console'
|
9
8
|
|
data/bin/destroy
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
|
+
unless defined?(RAILS_ROOT)
|
4
|
+
root_path = File.join(File.dirname(__FILE__), '..')
|
5
|
+
unless RUBY_PLATFORM =~ /mswin32/
|
6
|
+
require 'pathname'
|
7
|
+
root_path = Pathname.new(root_path).cleanpath(true).to_s
|
8
|
+
end
|
9
|
+
RAILS_ROOT = root_path
|
10
|
+
end
|
11
|
+
|
3
12
|
require 'rubygems'
|
4
13
|
gem 'adaptation'
|
14
|
+
|
5
15
|
require 'commands/destroy'
|
data/bin/generate
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
|
+
unless defined?(RAILS_ROOT)
|
4
|
+
root_path = File.join(File.dirname(__FILE__), '..')
|
5
|
+
unless RUBY_PLATFORM =~ /mswin32/
|
6
|
+
require 'pathname'
|
7
|
+
root_path = Pathname.new(root_path).cleanpath(true).to_s
|
8
|
+
end
|
9
|
+
RAILS_ROOT = root_path
|
10
|
+
end
|
11
|
+
|
3
12
|
require 'rubygems'
|
4
13
|
gem 'adaptation'
|
14
|
+
|
5
15
|
require 'commands/generate'
|
data/bin/publish
CHANGED
data/bin/subscribe
CHANGED
data/configs/boot.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
# Don't change this file. Configuration is done in config/environment.rb
|
1
|
+
# Don't change this file. Configuration is done in config/environment.rb, config/environments/*.rb and settings.yml.
|
2
2
|
|
3
|
-
unless defined?(
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
ADAPTOR_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(ADAPTOR_ROOT)
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'adaptation'
|
7
|
+
|
8
|
+
if defined? ADAPTOR_ENV
|
9
|
+
require ADAPTOR_ROOT + '/config/environments/' + ADAPTOR_ENV + '.rb'
|
10
10
|
end
|
11
|
+
|
12
|
+
require ADAPTOR_ROOT + '/config/environment'
|
data/dispatches/dispatch.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
ADAPTOR_ENV="development" unless defined? ADAPTOR_ENV
|
@@ -0,0 +1 @@
|
|
1
|
+
ADAPTOR_ENV="test" unless defined? ADAPTOR_ENV
|
data/lib/adaptation/base.rb
CHANGED
@@ -1,22 +1,20 @@
|
|
1
1
|
module Adaptation
|
2
2
|
|
3
|
+
ADAPTOR_ENV = 'development' unless defined? ADAPTOR_ENV
|
4
|
+
|
3
5
|
class Initializer
|
4
6
|
|
5
7
|
def self.run
|
6
8
|
|
7
|
-
unless defined? $environment
|
8
|
-
$environment = "development"
|
9
|
-
end
|
10
|
-
|
11
9
|
if File.exists?("#{ADAPTOR_ROOT}/config/settings.yml")
|
12
|
-
$config = YAML::load(File.open("#{ADAPTOR_ROOT}/config/settings.yml"))[
|
10
|
+
$config = YAML::load(File.open("#{ADAPTOR_ROOT}/config/settings.yml"))[ADAPTOR_ENV]
|
13
11
|
end
|
14
12
|
|
15
13
|
# connect with database -> this could also be avoided?
|
16
14
|
if File.exists?("#{ADAPTOR_ROOT}/config/database.yml")
|
17
|
-
environment_configurations = YAML::load(File.open("#{ADAPTOR_ROOT}/config/database.yml"))[
|
18
|
-
ActiveRecord::Base.configurations.update(
|
19
|
-
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[
|
15
|
+
environment_configurations = YAML::load(File.open("#{ADAPTOR_ROOT}/config/database.yml"))[ADAPTOR_ENV]
|
16
|
+
ActiveRecord::Base.configurations.update(ADAPTOR_ENV => environment_configurations)
|
17
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ADAPTOR_ENV])
|
20
18
|
end
|
21
19
|
|
22
20
|
# require all adaptors
|
@@ -46,7 +44,7 @@ module Adaptation
|
|
46
44
|
|
47
45
|
Initializer.run
|
48
46
|
|
49
|
-
@@logger = Logger.new("#{ADAPTOR_ROOT}/log/#{
|
47
|
+
@@logger = Logger.new("#{ADAPTOR_ROOT}/log/#{ADAPTOR_ENV}.log")
|
50
48
|
ActiveRecord::Base.logger = @@logger
|
51
49
|
|
52
50
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#set environment
|
2
|
-
|
2
|
+
ADAPTOR_ENV = "test"
|
3
3
|
|
4
4
|
Adaptation::Initializer.run
|
5
5
|
|
@@ -143,7 +143,7 @@ class Test::Unit::TestCase
|
|
143
143
|
|
144
144
|
ActiveRecord::Base.remove_connection
|
145
145
|
|
146
|
-
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[
|
146
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ADAPTOR_ENV])
|
147
147
|
|
148
148
|
database_exists = true
|
149
149
|
begin
|
@@ -154,7 +154,7 @@ class Test::Unit::TestCase
|
|
154
154
|
|
155
155
|
error = build_message error,
|
156
156
|
"? database not found",
|
157
|
-
ActiveRecord::Base.configurations[
|
157
|
+
ActiveRecord::Base.configurations[ADAPTOR_ENV][:database]
|
158
158
|
assert_block error do
|
159
159
|
database_exists
|
160
160
|
end
|
@@ -178,7 +178,7 @@ class Test::Unit::TestCase
|
|
178
178
|
|
179
179
|
ActiveRecord::Base.remove_connection
|
180
180
|
|
181
|
-
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[
|
181
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ADAPTOR_ENV])
|
182
182
|
|
183
183
|
database_exists = true
|
184
184
|
begin
|
@@ -189,7 +189,7 @@ class Test::Unit::TestCase
|
|
189
189
|
|
190
190
|
error = build_message error,
|
191
191
|
"? database shouldn't exist",
|
192
|
-
ActiveRecord::Base.configurations[
|
192
|
+
ActiveRecord::Base.configurations[ADAPTOR_ENV][:database]
|
193
193
|
assert_block error do
|
194
194
|
!database_exists
|
195
195
|
end
|
data/lib/adaptation/version.rb
CHANGED
data/lib/commands/console.rb
CHANGED
@@ -1,32 +1,43 @@
|
|
1
1
|
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
2
2
|
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
options = { :irb => irb }
|
6
|
+
OptionParser.new do |opt|
|
7
|
+
opt.banner = "Usage: console [environment] [options]"
|
8
|
+
opt.on("--irb=[#{irb}]", 'Invoke a different irb.') { |v| options[:irb] = v }
|
9
|
+
opt.on("--debugger", 'Enable ruby-debugging for the console.') { |v| options[:debugger] = v }
|
10
|
+
opt.parse!(ARGV)
|
11
|
+
end
|
12
|
+
|
3
13
|
libs = " -r irb/completion"
|
4
14
|
libs << " -r readline"
|
5
|
-
libs << " -r rubygems"
|
6
|
-
require 'rubygems'
|
7
15
|
|
8
|
-
|
9
|
-
|
10
|
-
|
16
|
+
if options[:debugger]
|
17
|
+
begin
|
18
|
+
require 'rubygems'
|
19
|
+
require 'ruby-debug'
|
11
20
|
libs << " -r ruby-debug"
|
21
|
+
puts "=> Debugger enabled"
|
22
|
+
rescue Exception
|
23
|
+
puts "You need to install ruby-debug to run the console in debugging mode. With gems, use 'gem install ruby-debug'"
|
24
|
+
exit
|
12
25
|
end
|
13
|
-
rescue
|
14
26
|
end
|
15
27
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
ENV_PATH = "/tmp"
|
28
|
+
ADAPTOR_ENV = case ARGV.first
|
29
|
+
when "d"; "development"
|
30
|
+
when "t"; "test"
|
31
|
+
else
|
32
|
+
ARGV.first || 'development'
|
22
33
|
end
|
23
34
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
35
|
+
# set console environment
|
36
|
+
libs << " -r #{ADAPTOR_ROOT}/config/environments/#{ADAPTOR_ENV}.rb"
|
37
|
+
|
38
|
+
libs << " -r #{ADAPTOR_ROOT}/config/boot"
|
39
|
+
|
40
|
+
puts "Loading #{ADAPTOR_ENV} environment (Adaptation #{Adaptation::VERSION::STRING})"
|
28
41
|
|
29
|
-
libs << " -r #{ENV_PATH}/adaptor_path.rb"
|
30
|
-
libs << " -r adaptation/console/environment"
|
31
42
|
exec "#{irb} #{libs} --simple-prompt"
|
32
43
|
|
data/lib/commands/subscribe.rb
CHANGED
@@ -47,18 +47,19 @@ class AppGenerator < Rails::Generator::Base
|
|
47
47
|
# settings.yml
|
48
48
|
m.template "configs/settings.yml", "config/settings.yml"
|
49
49
|
|
50
|
-
# boot.rb
|
50
|
+
# boot.rb
|
51
51
|
m.file "configs/boot.rb", "config/boot.rb"
|
52
52
|
|
53
53
|
# Environments
|
54
54
|
#m.file "environments/boot.rb", "config/boot.rb"
|
55
55
|
#m.template "environments/environment.rb", "config/environment.rb", :assigns => { :freeze => options[:freeze] }
|
56
|
+
m.file "environments/environment.rb", "config/environment.rb"
|
56
57
|
#m.file "environments/production.rb", "config/environments/production.rb"
|
57
|
-
|
58
|
-
|
58
|
+
m.file "environments/development.rb", "config/environments/development.rb"
|
59
|
+
m.file "environments/test.rb", "config/environments/test.rb"
|
59
60
|
|
60
61
|
# Scripts
|
61
|
-
%w( generate destroy about publish subscribe
|
62
|
+
%w( generate destroy about publish subscribe console ).each do |file|
|
62
63
|
m.file "bin/#{file}", "script/#{file}", script_options
|
63
64
|
end
|
64
65
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adaptation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xavi Vila Morell
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-04-01 00:00:00 +02:00
|
13
13
|
default_executable: adaptation
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -44,7 +44,6 @@ extra_rdoc_files:
|
|
44
44
|
files:
|
45
45
|
- bin/subscribe
|
46
46
|
- bin/destroy
|
47
|
-
- bin/breakpointer
|
48
47
|
- bin/about
|
49
48
|
- bin/adaptation
|
50
49
|
- bin/publish
|
@@ -54,7 +53,6 @@ files:
|
|
54
53
|
- lib/adaptation
|
55
54
|
- lib/adaptation/base.rb
|
56
55
|
- lib/adaptation/console
|
57
|
-
- lib/adaptation/console/environment.rb
|
58
56
|
- lib/adaptation/version.rb
|
59
57
|
- lib/adaptation/mom.rb
|
60
58
|
- lib/adaptation/message.rb
|
@@ -119,7 +117,6 @@ files:
|
|
119
117
|
- lib/commands/breakpointer.rb
|
120
118
|
- lib/commands/console.rb
|
121
119
|
- lib/commands/about.rb
|
122
|
-
- lib/commands/adaptor_path.rb
|
123
120
|
- lib/commands/subscribe.rb
|
124
121
|
- lib/commands/destroy.rb
|
125
122
|
- lib/commands/generate.rb
|
@@ -135,6 +132,9 @@ files:
|
|
135
132
|
- configs/settings.yml
|
136
133
|
- configs/empty.log
|
137
134
|
- configs/boot.rb
|
135
|
+
- environments/environment.rb
|
136
|
+
- environments/development.rb
|
137
|
+
- environments/test.rb
|
138
138
|
- dispatches/dispatch.rb
|
139
139
|
- README
|
140
140
|
- CHANGELOG
|
data/bin/breakpointer
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
$environment = "development"
|
3
|
-
$config = YAML::load(File.open("#{ADAPTOR_ROOT}/config/settings.yml"))[$environment]
|
4
|
-
Adaptation::Base.new
|
5
|
-
# connect to test database
|
6
|
-
require 'active_record'
|
7
|
-
|
8
|
-
if File.exists?("#{ADAPTOR_ROOT}/config/database.yml")
|
9
|
-
configurations = YAML::load(File.open("#{ADAPTOR_ROOT}/config/database.yml"))[$environment]
|
10
|
-
ActiveRecord::Base.configurations.update($environment => configurations)
|
11
|
-
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[$environment])
|
12
|
-
end
|
13
|
-
|
14
|
-
if File.exists?("log")
|
15
|
-
ActiveRecord::Base.logger = Logger.new("#{ADAPTOR_ROOT}/log/"+$environment+".log")
|
16
|
-
end
|
17
|
-
|
18
|
-
def get_xml_from_file xml_file
|
19
|
-
contents = new Array
|
20
|
-
File.open(xml_file).each { |line|
|
21
|
-
unless line =~ /^ {0,}#/
|
22
|
-
contents << line.strip.chomp
|
23
|
-
end
|
24
|
-
}
|
25
|
-
"#{contents.chomp}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def xml_to_object xml_message
|
29
|
-
class_name = xml_message[1..(xml_message.index(/(>| )/) - 1)]
|
30
|
-
message_class = Object.const_get(class_name.capitalize)
|
31
|
-
message_object = message_class.to_object(xml_message)
|
32
|
-
message_object
|
33
|
-
end
|
34
|
-
|
35
|
-
def xmlfile_to_object xml_file
|
36
|
-
xml_message = get_xml_from_file(xml_file.to_s)
|
37
|
-
message_object = xml_to_object xml_message
|
38
|
-
message_object
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
ADAPTOR_ROOT = "/usr/share/oademand/sugarcrm4.5/installer"
|