communicator 0.1.11 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,6 +1,8 @@
1
1
  ## MAC OS
2
2
  .DS_Store
3
3
  .bundle
4
+ Gemfile.lock
5
+ .rvmrc
4
6
 
5
7
  ## TEXTMATE
6
8
  *.tmproj
@@ -21,6 +23,7 @@ tmtags
21
23
  coverage
22
24
  rdoc
23
25
  pkg
26
+ tmp
24
27
 
25
28
  ## PROJECT::SPECIFIC
26
29
  db/*.sqlite*
@@ -5,10 +5,9 @@ Rails apps.
5
5
 
6
6
  == Setup
7
7
 
8
- Install in Rails apps with:
8
+ Install in Rails apps by adding this to your Gemfile:
9
9
 
10
10
  gem 'communicator'
11
- $ bundle install
12
11
 
13
12
  Import rake tasks in your Rails.root/Rakefile:
14
13
 
@@ -98,6 +97,11 @@ When an update is received from a remote side, the message will be stored in
98
97
  `inbound_messages` and the received changes will be applied to the local record,
99
98
  either updating existing or creating new records.
100
99
 
100
+ == Compatibility
101
+
102
+ Communicator is currently only proven to work on Rails 2 apps using either
103
+ REE, 1.8.7, 1.9.1 or 1.9.2.
104
+
101
105
  == Note on Patches/Pull Requests
102
106
 
103
107
  * Fork the project.
data/Rakefile CHANGED
@@ -1,38 +1,25 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "communicator"
8
- gem.summary = %Q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
9
- gem.description = %Q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
10
- gem.email = "christoph at olszowka de"
11
- gem.homepage = "http://github.com/colszowka/communicator"
12
- gem.authors = ["Christoph Olszowka"]
13
- gem.add_dependency 'sinatra', "~> 1.1.0"
14
- gem.add_dependency 'activerecord', "< 3.0.0"
15
- gem.add_dependency 'httparty', '>= 0.6.1'
16
- gem.add_dependency 'json', '>= 1.4.0'
17
- gem.add_development_dependency "shoulda", "2.10.3"
18
- gem.add_development_dependency 'factory_girl', ">= 1.2.3"
19
- gem.add_development_dependency 'rack-test', ">= 0.5.6"
20
- gem.add_development_dependency 'bundler', ">= 1.0.0"
21
- gem.add_development_dependency 'sqlite3-ruby', ">= 1.3.0"
22
- gem.add_development_dependency 'jeweler', '~> 1.4.0'
23
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
24
- end
25
- Jeweler::GemcutterTasks.new
26
- rescue LoadError
27
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
4
+ require 'rake/testtask'
5
+ Rake::TestTask.new(:test) do |test|
6
+ test.libs << 'lib' << 'test'
7
+ test.pattern = 'test/**/test_*.rb'
8
+ test.verbose = true
28
9
  end
29
10
 
30
-
11
+ require 'rake/rdoctask'
12
+ Rake::RDocTask.new do |rdoc|
13
+ rdoc.rdoc_dir = 'rdoc'
14
+ rdoc.rdoc_files.include('README*')
15
+ rdoc.rdoc_files.include('lib/**/*.rb')
16
+ end
31
17
 
32
18
  namespace :db do
33
19
  desc "Drop, create and migrate the test databases"
34
20
  task :migrate do
35
21
  require 'active_record'
22
+ require 'logger'
36
23
  # Drop existing db
37
24
  system "rm db/*.sqlite3"
38
25
  dev_null = File.new('/dev/null', 'w')
@@ -51,53 +38,38 @@ end
51
38
  namespace :test_server do
52
39
  desc "Starts the test server"
53
40
  task :start do
54
- Thread.new do
55
- # Capture sinatra output (to hide it away...)
56
- require "open3"
57
- rackup = "bundle exec rackup test/config.ru -p 20359 --pid=#{File.join(File.dirname(__FILE__), 'test', 'rack.pid')}"
58
- Open3.popen3(rackup)
59
- #`#{rackup}` # Uncomment to see actual server output
60
-
41
+ # For background on what is going on here, please have a look at:
42
+ # http://stackoverflow.com/questions/1993071/how-to-controller-start-kill-a-background-process-server-app-in-ruby
43
+ # http://stackoverflow.com/questions/224512/redirect-the-puts-command-output-to-a-log-file
44
+
45
+ # Clean up tmp dir and make sure test_server.log file exists
46
+ Dir["tmp/*"].each {|f| system("rm #{f}")}
47
+ system("touch tmp/test_server.log")
48
+
49
+ # Dynamically choose a port to use so tests can run concurrently!
50
+ server_port = 20000+rand(5000)
51
+ # Write the port into a tempfile so tests can figure out where to run against!
52
+ File.open('tmp/server_port', "w+") do |f|
53
+ f.print server_port
61
54
  end
62
- sleep 2.0
63
-
64
- Kernel.at_exit do
65
- Rake::Task["test_server:stop"].invoke
55
+ puts "Waiting for test server to start on localhost:#{server_port}"
56
+
57
+ pid = fork do
58
+ exec "bundle exec thin --debug --log tmp/test_server.log -R test/config.ru -p #{server_port} start"
66
59
  end
67
- end
68
60
 
69
- desc "Stops the test server"
70
- task :stop do
71
- begin
72
- pid = File.read(File.join(File.dirname(__FILE__), 'test', 'rack.pid')).strip.chomp
73
- `kill -s KILL #{pid}`
74
- puts "Killed test server with PID #{pid}"
75
- rescue => err
76
- puts "Nothing to stop..."
61
+ sleep 10
62
+
63
+ Kernel.at_exit do
64
+ system("rm tmp/*")
65
+ Process.kill "KILL", pid
66
+ Process.wait pid
77
67
  end
78
68
  end
79
- end
80
69
 
81
- require 'rake/testtask'
82
- Rake::TestTask.new(:test) do |test|
83
- test.libs << 'lib' << 'test'
84
- test.pattern = 'test/**/test_*.rb'
85
- test.verbose = true
86
70
  end
87
71
 
88
- task :test => :check_dependencies
89
72
  # Make sure database and test server are in place when tests start
90
73
  task :test => :"db:migrate"
91
74
  task :test => :"test_server:start"
92
-
93
75
  task :default => :test
94
-
95
- require 'rake/rdoctask'
96
- Rake::RDocTask.new do |rdoc|
97
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
98
-
99
- rdoc.rdoc_dir = 'rdoc'
100
- rdoc.title = "communicator #{version}"
101
- rdoc.rdoc_files.include('README*')
102
- rdoc.rdoc_files.include('lib/**/*.rb')
103
- end
@@ -1,115 +1,32 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "communicator/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{communicator}
8
- s.version = "0.1.11"
6
+ s.name = "communicator"
7
+ s.version = Communicator::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Christoph Olszowka"]
10
+ s.email = ["christoph at olszowka de"]
11
+ s.homepage = "http://github.com/capita/communicator"
12
+ s.summary = %Q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
13
+ s.description = %Q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
9
14
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Christoph Olszowka"]
12
- s.date = %q{2010-11-19}
13
- s.description = %q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
14
- s.email = %q{christoph at olszowka de}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- ".rvmrc",
23
- "Gemfile",
24
- "Gemfile.lock",
25
- "LICENSE",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "communicator.gemspec",
30
- "db/migrate/20101101075419_create_inbound_messages.rb",
31
- "db/migrate/20101101075719_create_outbound_messages.rb",
32
- "lib/communicator.rb",
33
- "lib/communicator/active_record_integration.rb",
34
- "lib/communicator/client.rb",
35
- "lib/communicator/inbound_message.rb",
36
- "lib/communicator/outbound_message.rb",
37
- "lib/communicator/server.rb",
38
- "lib/communicator/tasks.rb",
39
- "test/config.ru",
40
- "test/factories.rb",
41
- "test/helper.rb",
42
- "test/lib/comment.rb",
43
- "test/lib/post.rb",
44
- "test/lib/test_server_database/comment.rb",
45
- "test/lib/test_server_database/inbound_message.rb",
46
- "test/lib/test_server_database/outbound_message.rb",
47
- "test/lib/test_server_database/post.rb",
48
- "test/migrate/20101101093519_create_posts.rb",
49
- "test/migrate/20101103120519_create_comments.rb",
50
- "test/test_client.rb",
51
- "test/test_message_models.rb",
52
- "test/test_server.rb"
53
- ]
54
- s.homepage = %q{http://github.com/colszowka/communicator}
55
- s.rdoc_options = ["--charset=UTF-8"]
56
- s.require_paths = ["lib"]
57
- s.rubygems_version = %q{1.3.7}
58
- s.summary = %q{Data push/pull between apps with local inbound/outbound queue and easy publish/process interface}
59
- s.test_files = [
60
- "test/factories.rb",
61
- "test/helper.rb",
62
- "test/lib/comment.rb",
63
- "test/lib/post.rb",
64
- "test/lib/test_server_database/comment.rb",
65
- "test/lib/test_server_database/inbound_message.rb",
66
- "test/lib/test_server_database/outbound_message.rb",
67
- "test/lib/test_server_database/post.rb",
68
- "test/migrate/20101101093519_create_posts.rb",
69
- "test/migrate/20101103120519_create_comments.rb",
70
- "test/test_client.rb",
71
- "test/test_message_models.rb",
72
- "test/test_server.rb"
73
- ]
74
-
75
- if s.respond_to? :specification_version then
76
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
77
- s.specification_version = 3
15
+ s.rubyforge_project = "communicator"
16
+
17
+ s.add_dependency 'sinatra', "~> 1.1.0"
18
+ s.add_dependency 'activerecord', "< 3.0.0"
19
+ s.add_dependency 'httparty', '>= 0.6.1'
20
+ s.add_dependency 'json', '>= 1.4.0'
21
+ s.add_development_dependency "shoulda", "2.10.3"
22
+ s.add_development_dependency 'factory_girl', ">= 1.2.3"
23
+ s.add_development_dependency 'rack-test', ">= 0.5.6"
24
+ s.add_development_dependency 'bundler', ">= 1.0.0"
25
+ s.add_development_dependency 'sqlite3-ruby', ">= 1.3.0"
26
+ s.add_development_dependency 'thin'
78
27
 
79
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
80
- s.add_runtime_dependency(%q<sinatra>, ["~> 1.1.0"])
81
- s.add_runtime_dependency(%q<activerecord>, ["< 3.0.0"])
82
- s.add_runtime_dependency(%q<httparty>, [">= 0.6.1"])
83
- s.add_runtime_dependency(%q<json>, [">= 1.4.0"])
84
- s.add_development_dependency(%q<shoulda>, ["= 2.10.3"])
85
- s.add_development_dependency(%q<factory_girl>, [">= 1.2.3"])
86
- s.add_development_dependency(%q<rack-test>, [">= 0.5.6"])
87
- s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
88
- s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.3.0"])
89
- s.add_development_dependency(%q<jeweler>, ["~> 1.4.0"])
90
- else
91
- s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
92
- s.add_dependency(%q<activerecord>, ["< 3.0.0"])
93
- s.add_dependency(%q<httparty>, [">= 0.6.1"])
94
- s.add_dependency(%q<json>, [">= 1.4.0"])
95
- s.add_dependency(%q<shoulda>, ["= 2.10.3"])
96
- s.add_dependency(%q<factory_girl>, [">= 1.2.3"])
97
- s.add_dependency(%q<rack-test>, [">= 0.5.6"])
98
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
99
- s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.0"])
100
- s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
101
- end
102
- else
103
- s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
104
- s.add_dependency(%q<activerecord>, ["< 3.0.0"])
105
- s.add_dependency(%q<httparty>, [">= 0.6.1"])
106
- s.add_dependency(%q<json>, [">= 1.4.0"])
107
- s.add_dependency(%q<shoulda>, ["= 2.10.3"])
108
- s.add_dependency(%q<factory_girl>, [">= 1.2.3"])
109
- s.add_dependency(%q<rack-test>, [">= 0.5.6"])
110
- s.add_dependency(%q<bundler>, [">= 1.0.0"])
111
- s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.0"])
112
- s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
113
- end
28
+ s.files = `git ls-files`.split("\n")
29
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
31
+ s.require_paths = ["lib"]
114
32
  end
115
-
@@ -66,6 +66,7 @@ require 'communicator/client'
66
66
  require 'communicator/active_record_integration'
67
67
  require 'communicator/outbound_message'
68
68
  require 'communicator/inbound_message'
69
+ require 'communicator/version'
69
70
 
70
71
  # Autoload config when present for rails
71
72
  if defined?(Rails)
@@ -5,6 +5,7 @@ class Communicator::Client
5
5
  class InvalidStartingId < StandardError; end;
6
6
 
7
7
  include HTTParty
8
+ default_timeout 10
8
9
 
9
10
  class << self
10
11
  attr_writer :username, :password
@@ -28,6 +29,10 @@ class Communicator::Client
28
29
  verify_response request.response
29
30
  Communicator::InboundMessage.create_from_json_collection!(JSON.parse(request.parsed_response))
30
31
  request
32
+
33
+ # Customize error message on HTTP Timeout
34
+ rescue Timeout::Error => err
35
+ raise Timeout::Error, "Failed to PULL from #{base_uri} - Request timed out!"
31
36
  end
32
37
 
33
38
  def push(from_id=nil)
@@ -45,6 +50,10 @@ class Communicator::Client
45
50
  else
46
51
  raise "Could not agree upon from_id with server!"
47
52
  end
53
+
54
+ # Customize error message on HTTP Timeout
55
+ rescue Timeout::Error => err
56
+ raise Timeout::Error, "Failed to PUSH to #{base_uri} - Request timed out!"
48
57
  end
49
58
 
50
59
  def verify_response(response)
@@ -60,4 +69,4 @@ class Communicator::Client
60
69
  end
61
70
  end
62
71
 
63
- end
72
+ end
@@ -0,0 +1,3 @@
1
+ module Communicator
2
+ VERSION = '0.2.0'
3
+ end
@@ -1,8 +1,7 @@
1
1
  require 'bundler'
2
2
  Bundler.setup(:default, :development)
3
3
 
4
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
- $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ $LOAD_PATH.unshift(::File.dirname(__FILE__))
6
5
 
7
6
  require 'active_record'
8
7
  require 'communicator'
@@ -14,4 +13,4 @@ require 'lib/comment'
14
13
  Communicator::Server.username = 'testuser'
15
14
  Communicator::Server.password = 'pwd'
16
15
 
17
- run Communicator::Server
16
+ run Communicator::Server
@@ -48,4 +48,13 @@ class Test::Unit::TestCase
48
48
  TestServerDatabase::Post.delete_all
49
49
  TestServerDatabase::Comment.delete_all
50
50
  end
51
- end
51
+
52
+ # Retrieves the test server port that is generated randomly (see Rakefile)
53
+ # from the tempfile...
54
+ def server_port
55
+ File.read(File.join(File.dirname(__FILE__), '../tmp/server_port')).strip.chomp
56
+ rescue => err
57
+ err.message = "Failed to retrieve test server port. Are you sure test server is running? #{err.message}"
58
+ raise err
59
+ end
60
+ end
@@ -2,8 +2,8 @@ require 'helper'
2
2
 
3
3
  #
4
4
  # Unit tests for client and it's interaction with the real server running in background
5
- # on port 20359. For introspection purposes, a simple second database connection
6
- # has been established as TestServerDatabase
5
+ # For introspection purposes, a simple second database connection has been established
6
+ # as TestServerDatabase
7
7
  #
8
8
  class TestClient < Test::Unit::TestCase
9
9
  context "Without auth credentials configured" do
@@ -28,7 +28,7 @@ class TestClient < Test::Unit::TestCase
28
28
  setup do
29
29
  Communicator::Client.username = 'testuser'
30
30
  Communicator::Client.password = 'pwd'
31
- Communicator::Client.base_uri 'localhost:20359'
31
+ Communicator::Client.base_uri "localhost:#{server_port}"
32
32
  end
33
33
 
34
34
  context "PUSH" do
@@ -132,7 +132,7 @@ class TestClient < Test::Unit::TestCase
132
132
  assert_equal 'some comment', TestServerDatabase::Comment.first.body
133
133
  end
134
134
 
135
- should "have skipped permissions attribute when processing at remote" do
135
+ should "have skipped title attribute when processing at remote" do
136
136
  assert_nil TestServerDatabase::Comment.first.title
137
137
  end
138
138
  end
@@ -159,4 +159,4 @@ class TestClient < Test::Unit::TestCase
159
159
  end
160
160
  end
161
161
  end
162
- end
162
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: communicator
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 11
10
- version: 0.1.11
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christoph Olszowka
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-19 00:00:00 +01:00
18
+ date: 2011-02-09 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -163,40 +163,35 @@ dependencies:
163
163
  type: :development
164
164
  version_requirements: *id009
165
165
  - !ruby/object:Gem::Dependency
166
- name: jeweler
166
+ name: thin
167
167
  prerelease: false
168
168
  requirement: &id010 !ruby/object:Gem::Requirement
169
169
  none: false
170
170
  requirements:
171
- - - ~>
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- hash: 7
173
+ hash: 3
174
174
  segments:
175
- - 1
176
- - 4
177
175
  - 0
178
- version: 1.4.0
176
+ version: "0"
179
177
  type: :development
180
178
  version_requirements: *id010
181
179
  description: Data push/pull between apps with local inbound/outbound queue and easy publish/process interface
182
- email: christoph at olszowka de
180
+ email:
181
+ - christoph at olszowka de
183
182
  executables: []
184
183
 
185
184
  extensions: []
186
185
 
187
- extra_rdoc_files:
188
- - LICENSE
189
- - README.rdoc
186
+ extra_rdoc_files: []
187
+
190
188
  files:
191
189
  - .document
192
190
  - .gitignore
193
- - .rvmrc
194
191
  - Gemfile
195
- - Gemfile.lock
196
192
  - LICENSE
197
193
  - README.rdoc
198
194
  - Rakefile
199
- - VERSION
200
195
  - communicator.gemspec
201
196
  - db/migrate/20101101075419_create_inbound_messages.rb
202
197
  - db/migrate/20101101075719_create_outbound_messages.rb
@@ -207,6 +202,7 @@ files:
207
202
  - lib/communicator/outbound_message.rb
208
203
  - lib/communicator/server.rb
209
204
  - lib/communicator/tasks.rb
205
+ - lib/communicator/version.rb
210
206
  - test/config.ru
211
207
  - test/factories.rb
212
208
  - test/helper.rb
@@ -221,13 +217,14 @@ files:
221
217
  - test/test_client.rb
222
218
  - test/test_message_models.rb
223
219
  - test/test_server.rb
220
+ - tmp/.gitignore
224
221
  has_rdoc: true
225
- homepage: http://github.com/colszowka/communicator
222
+ homepage: http://github.com/capita/communicator
226
223
  licenses: []
227
224
 
228
225
  post_install_message:
229
- rdoc_options:
230
- - --charset=UTF-8
226
+ rdoc_options: []
227
+
231
228
  require_paths:
232
229
  - lib
233
230
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -250,22 +247,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
247
  version: "0"
251
248
  requirements: []
252
249
 
253
- rubyforge_project:
254
- rubygems_version: 1.3.7
250
+ rubyforge_project: communicator
251
+ rubygems_version: 1.4.1
255
252
  signing_key:
256
253
  specification_version: 3
257
254
  summary: Data push/pull between apps with local inbound/outbound queue and easy publish/process interface
258
- test_files:
259
- - test/factories.rb
260
- - test/helper.rb
261
- - test/lib/comment.rb
262
- - test/lib/post.rb
263
- - test/lib/test_server_database/comment.rb
264
- - test/lib/test_server_database/inbound_message.rb
265
- - test/lib/test_server_database/outbound_message.rb
266
- - test/lib/test_server_database/post.rb
267
- - test/migrate/20101101093519_create_posts.rb
268
- - test/migrate/20101103120519_create_comments.rb
269
- - test/test_client.rb
270
- - test/test_message_models.rb
271
- - test/test_server.rb
255
+ test_files: []
256
+
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.8.7
@@ -1,54 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- communicator (0.1.10)
5
- activerecord (< 3.0.0)
6
- httparty (>= 0.6.1)
7
- json (>= 1.4.0)
8
- sinatra (~> 1.1.0)
9
-
10
- GEM
11
- remote: http://rubygems.org/
12
- specs:
13
- activerecord (2.3.10)
14
- activesupport (= 2.3.10)
15
- activesupport (2.3.10)
16
- crack (0.1.8)
17
- factory_girl (1.3.2)
18
- gemcutter (0.6.1)
19
- git (1.2.5)
20
- httparty (0.6.1)
21
- crack (= 0.1.8)
22
- jeweler (1.4.0)
23
- gemcutter (>= 0.1.0)
24
- git (>= 1.2.5)
25
- rubyforge (>= 2.0.0)
26
- json (1.4.6)
27
- json_pure (1.4.6)
28
- rack (1.2.1)
29
- rack-test (0.5.6)
30
- rack (>= 1.0)
31
- rubyforge (2.0.4)
32
- json_pure (>= 1.1.7)
33
- shoulda (2.10.3)
34
- sinatra (1.1.0)
35
- rack (~> 1.1)
36
- tilt (~> 1.1)
37
- sqlite3-ruby (1.3.2)
38
- tilt (1.1)
39
-
40
- PLATFORMS
41
- ruby
42
-
43
- DEPENDENCIES
44
- activerecord (< 3.0.0)
45
- bundler (>= 1.0.0)
46
- communicator!
47
- factory_girl (>= 1.2.3)
48
- httparty (>= 0.6.1)
49
- jeweler (>= 1.4.0)
50
- json (>= 1.4.0)
51
- rack-test (>= 0.5.6)
52
- shoulda (= 2.10.3)
53
- sinatra (~> 1.1.0)
54
- sqlite3-ruby (>= 1.3.0)
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.11