rammer 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/Gemfile +27 -0
  2. data/MODULE_FILES +34 -0
  3. data/README.md +17 -5
  4. data/Rakefile +37 -0
  5. data/bin/rammer +2 -3
  6. data/bin/viber +37 -38
  7. data/lib/modules/authentication/authentication_apis.rb +64 -0
  8. data/lib/modules/authorization/authorization_apis.rb +89 -0
  9. data/lib/modules/common/Gemfile +43 -0
  10. data/lib/{template → modules/common}/Gemfile.lock +0 -0
  11. data/lib/{template → modules/common}/Procfile +0 -0
  12. data/lib/{template → modules/common}/Rakefile +27 -0
  13. data/lib/modules/common/application.rb +48 -0
  14. data/lib/{template → modules/common}/database.yml +1 -1
  15. data/lib/modules/common/server.rb +38 -0
  16. data/lib/modules/common/tree.rb +30 -0
  17. data/lib/{template → modules/migrations}/01_create_users.rb +27 -0
  18. data/lib/modules/migrations/02_create_sessions.rb +36 -0
  19. data/lib/modules/migrations/03_create_owners.rb +40 -0
  20. data/lib/modules/migrations/04_create_oauth2_authorizations.rb +50 -0
  21. data/lib/modules/migrations/05_create_oauth2_clients.rb +45 -0
  22. data/lib/modules/models/oauth2_authorization.rb +203 -0
  23. data/lib/modules/models/oauth2_client.rb +216 -0
  24. data/lib/modules/models/owner.rb +65 -0
  25. data/lib/modules/models/session.rb +30 -0
  26. data/lib/modules/models/user.rb +135 -0
  27. data/lib/modules/oauth/oauth_apis.rb +92 -0
  28. data/lib/rammer/module_generator.rb +236 -0
  29. data/lib/rammer/rammer_generator.rb +160 -0
  30. data/lib/rammer/version.rb +28 -1
  31. data/lib/rammer.rb +24 -278
  32. data/rammer.gemspec +37 -24
  33. data/test/helper.rb +49 -0
  34. data/test/test_rammer_root_structure.rb +80 -0
  35. data/test/test_viber_module_plugin.rb +104 -0
  36. data/test/test_viber_module_unplug.rb +87 -0
  37. metadata +77 -29
  38. data/lib/template/02_create_sessions.rb +0 -9
  39. data/lib/template/03_create_owners.rb +0 -13
  40. data/lib/template/04_create_oauth2_authorizations.rb +0 -23
  41. data/lib/template/05_create_oauth2_clients.rb +0 -18
  42. data/lib/template/Gemfile +0 -16
  43. data/lib/template/application.rb +0 -21
  44. data/lib/template/authentication_apis.rb +0 -35
  45. data/lib/template/authorization_apis.rb +0 -59
  46. data/lib/template/oauth2_authorization.rb +0 -113
  47. data/lib/template/oauth2_client.rb +0 -100
  48. data/lib/template/oauth_apis.rb +0 -138
  49. data/lib/template/owner.rb +0 -10
  50. data/lib/template/server.rb +0 -11
  51. data/lib/template/session.rb +0 -3
  52. data/lib/template/tree.rb +0 -3
  53. data/lib/template/user.rb +0 -78
data/Gemfile CHANGED
@@ -1,3 +1,30 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
1
28
  source 'https://rubygems.org'
2
29
 
3
30
  # Specify your gem's dependencies in rammer.gemspec
data/MODULE_FILES ADDED
@@ -0,0 +1,34 @@
1
+ lib/rammer.rb
2
+ lib/rammer/version.rb
3
+ lib/rammer/rammer_generator.rb
4
+ lib/rammer/module_generator.rb
5
+ lib/modules/migrations/01_create_users.rb
6
+ lib/modules/migrations/02_create_sessions.rb
7
+ lib/modules/migrations/03_create_owners.rb
8
+ lib/modules/migrations/04_create_oauth2_authorizations.rb
9
+ lib/modules/migrations/05_create_oauth2_clients.rb
10
+ lib/modules/common/Gemfile
11
+ lib/modules/common/Gemfile.lock
12
+ lib/modules/common/Procfile
13
+ lib/modules/common/Rakefile
14
+ lib/modules/common/application.rb
15
+ lib/modules/authentication/authentication_apis.rb
16
+ lib/modules/authorization/authorization_apis.rb
17
+ lib/modules/common/database.yml
18
+ lib/modules/models/oauth2_authorization.rb
19
+ lib/modules/models/oauth2_client.rb
20
+ lib/modules/oauth/oauth_apis.rb
21
+ lib/modules/models/owner.rb
22
+ lib/modules/common/server.rb
23
+ lib/modules/models/session.rb
24
+ lib/modules/common/tree.rb
25
+ lib/modules/models/user.rb
26
+ test/helper.rb
27
+ test/test_rammer_root_structure.rb
28
+ test/test_viber_module_plugin.rb
29
+ test/test_viber_module_unplug.rb
30
+ Gemfile
31
+ LICENSE.txt
32
+ README.md
33
+ Rakefile
34
+ rammer.gemspec
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # Rammer
1
+ <img height="100" width="250" src="https://raw.github.com/qburstruby/rammer/master/rammer_logo.png">
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/rammer.png)](http://badge.fury.io/rb/rammer) [![Build Status](https://travis-ci.org/qburstruby/rammer-2.0.0.png?branch=master)](https://travis-ci.org/qburstruby/rammer-2.0.0)
2
4
 
3
5
  Rammer is a framework dedicated to build high performance Async API servers on top of non-blocking (asynchronous) Ruby web server called Goliath. Rammer APIs are designed on top of REST-like API micro-framework Grape. Rammer is modular and integrates a powerful CLI called Viber to plug in and out its modules.
4
6
 
@@ -30,20 +32,27 @@ MODULE_NAME :
30
32
 
31
33
  Endpoints enabled with respective module:
32
34
 
33
- - Authentication
35
+ Authentication
34
36
  * sign_up : "Enables user authentication using email, MD5 password and redirect url returning session token."
35
37
 
36
- - Authorization
38
+ Authorization
37
39
  * sign_in : "Enables user login using credentials returning session token."
38
40
  * sign_out : "Enables user logout using credentials by invalidating the session token."
39
41
 
40
- - Oauth
41
- * register_client : "Registers ouath client using credentials returning client details like ID, Secret hash, authorization code."
42
+ Oauth
43
+ * authenticate : "Registers ouath client using credentials returning client details like ID, Secret hash, authorization code."
44
+ * request_token : "Returns a request token which is further used for access token generation."
42
45
  * authorize : "Enables functionality for activating authorization page access."
43
46
  * access_token : "Returns oauth access token for registered clients to authorized users."
44
47
  * token : "Returns bearer token to registered third party clients."
45
48
  * invalidate_token : "Invalidated the issued bearer token."
46
49
 
50
+ ## Wiki Link
51
+
52
+ For further details visit our wiki link :
53
+
54
+ https://github.com/qburstruby/rammer-2.0.0/wiki
55
+
47
56
  ## Contributors
48
57
 
49
58
  This list is open to all. You are all welcome :).
@@ -51,6 +60,9 @@ This list is open to all. You are all welcome :).
51
60
  * manishaharidas (Manisha Haridas) -
52
61
  * Github: https://github.com/manishaharidas
53
62
 
63
+ * qburstruby (QBurst Ruby Team) -
64
+ * Github: https://github.com/qburstruby
65
+
54
66
  ## Comments/Requests
55
67
 
56
68
  If anyone has comments or questions please let me know (qbruby@qburst.com).
data/Rakefile CHANGED
@@ -1 +1,38 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
1
28
  require "bundler/gem_tasks"
29
+
30
+ require 'rake/testtask'
31
+ Rake::TestTask.new(:test) do |test|
32
+ test.test_files = FileList.new('test/**/test_*.rb') do |list|
33
+ list.exclude 'test/test_helper.rb'
34
+ list.exclude 'test/fixtures/**/*.rb'
35
+ end
36
+ test.libs << 'test'
37
+ test.verbose = true
38
+ end
data/bin/rammer CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
-
3
2
  require 'rammer'
4
3
 
5
- generator = Rammer::Generator.new(*ARGV)
6
- generator.run
4
+ generator = Rammer::RammerGenerator.new(*ARGV)
5
+ generator.run
data/bin/viber CHANGED
@@ -1,20 +1,19 @@
1
1
  #!/usr/bin/env ruby
2
-
3
2
  require 'rammer'
4
3
 
5
4
  def parse_options
6
- case ARGV[1]
7
- when "-p", "-plugin"
8
- return true
9
- when "-u", "-unplug"
10
- return true
11
- else
12
- return false
13
- end
5
+ case ARGV[1]
6
+ when "-p", "-plugin"
7
+ return true
8
+ when "-u", "-unplug"
9
+ return true
10
+ else
11
+ return false
12
+ end
14
13
  end
15
14
 
16
15
  def options_message
17
- STDOUT.puts <<-EOF
16
+ STDOUT.puts <<-EOF
18
17
  Please include module name
19
18
 
20
19
  Usage:
@@ -28,38 +27,38 @@ EOF
28
27
  end
29
28
 
30
29
  def execute(module_name,action)
31
- target_dir = Dir.pwd.split('/',Dir.pwd.count('/')+1).last
32
- name = target_dir.split.map(&:capitalize)*' '
33
- case module_name
34
- when "authentication"
35
- module_class = "::#{name}::AuthenticationApis"
36
- when "authorization"
37
- module_class = "::#{name}::AuthorizationApis"
38
- when "oauth"
39
- module_class = "::#{name}::OauthApis"
40
- end
41
- options = { :target_dir => target_dir, :module_class => module_class,
42
- :module_name => module_name, :action => action}
43
- module_generator = Rammer::ModuleGenerator.new(options)
44
- module_generator.run
30
+ target_dir = Dir.pwd.split('/',Dir.pwd.count('/')+1).last
31
+ name = target_dir.split('_').map(&:capitalize)*''
32
+ case module_name
33
+ when "authentication"
34
+ module_class = "::#{name}::AuthenticationApis"
35
+ when "authorization"
36
+ module_class = "::#{name}::AuthorizationApis"
37
+ when "oauth"
38
+ module_class = "::#{name}::OauthApis"
39
+ end
40
+ options = { :project_name => target_dir, :module_class => module_class,
41
+ :module_name => module_name, :action => action}
42
+ module_generator = Rammer::ModuleGenerator.new(options)
43
+ module_generator.run
45
44
  end
46
45
 
47
46
  case ARGV[0]
48
47
  when "module"
49
- if parse_options
50
- case ARGV[2]
51
- when "authentication"
52
- execute("authentication",ARGV[1])
53
- when "authorization"
54
- execute("authorization",ARGV[1])
55
- when "oauth"
56
- execute("oauth",ARGV[1])
57
- else
58
- options_message
59
- exit
60
- end
48
+ if parse_options
49
+ case ARGV[2]
50
+ when "authentication"
51
+ execute("authentication",ARGV[1])
52
+ when "authorization"
53
+ execute("authorization",ARGV[1])
54
+ when "oauth"
55
+ execute("oauth",ARGV[1])
61
56
  else
62
- STDOUT.puts <<-EOF
57
+ options_message
58
+ exit
59
+ end
60
+ else
61
+ STDOUT.puts <<-EOF
63
62
  Please provide command options
64
63
 
65
64
  Usage:
@@ -69,5 +68,5 @@ Usage:
69
68
  -p,-plugin :Plugs in rammer specified modules.
70
69
  -u,-unplug :Unplugs rammer specified modules.
71
70
  EOF
72
- end
71
+ end
73
72
  end
@@ -0,0 +1,64 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ require 'oauth2'
29
+ require 'songkick/oauth2/provider'
30
+ require 'ruby_regex'
31
+
32
+ module Rammer
33
+
34
+ class AuthenticationApis < Grape::API
35
+ Songkick::OAuth2::Provider.realm = 'PocketAPI Oauth Server'
36
+ version 'v1', :using => :path
37
+ format :json
38
+
39
+ =begin
40
+ This web service enables pockit server user sign up process with request parameters:
41
+ {"email"=> User email,
42
+ "password" => MD5 hash encrypted password,
43
+ "redirect_uri" => Callback url for this api call.
44
+ }
45
+ =end
46
+ [:get, :post].each do |method|
47
+ __send__ method, '/authentication/sign_up' do
48
+ if User.validate_params?(params,"sign_up")
49
+ @existing_user = User.find_by_email(params.email)
50
+ unless @existing_user
51
+ @user, @session = User.sign_up(params)
52
+ redirect @user.redirect_url(params,@session)
53
+ else
54
+ error = "User already exists."
55
+ Oauth2Authorization.error_response(error)
56
+ end
57
+ else
58
+ error = "Parameters missing or invalid."
59
+ Oauth2Authorization.error_response(error)
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,89 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ require 'oauth2'
29
+ require 'songkick/oauth2/provider'
30
+ require 'ruby_regex'
31
+
32
+ module Rammer
33
+
34
+ class AuthorizationApis < Grape::API
35
+ Songkick::OAuth2::Provider.realm = 'PocketAPI Oauth Server'
36
+ version 'v1', :using => :path
37
+ format :json
38
+
39
+ =begin
40
+ This web service enables pockit server user sign up process with request parameters:
41
+ {"email"=> User email,
42
+ "password" => MD5 hash encrypted password,
43
+ "redirect_uri" => Callback url for this api call.
44
+ }
45
+ =end
46
+ [:get, :post].each do |method|
47
+ __send__ method, '/authorization/sign_in' do
48
+ if User.validate_params?(params,"sign_in")
49
+ @authroized_user = User.find_by_email_and_encrypted_password(params.email,params.password)
50
+ if @authroized_user
51
+ @session = @authroized_user.sign_in(params)
52
+ redirect @authroized_user.redirect_url(params,@session)
53
+ else
54
+ error = "Not a registered user."
55
+ Oauth2Authorization.error_response(error)
56
+ end
57
+ else
58
+ error = "Parameters missing or invalid."
59
+ Oauth2Authorization.error_response(error)
60
+ end
61
+ end
62
+ end
63
+
64
+ =begin
65
+ This web service enables pockit server user sign up process with request parameters:
66
+ {"email"=> User email,
67
+ "session_token" => Session token obtained during sign in,
68
+ "redirect_uri" => Callback url for this api call.
69
+ }
70
+ =end
71
+ [:get, :post].each do |method|
72
+ __send__ method, '/authorization/sign_out' do
73
+ if User.validate_params?(params,"sign_out")
74
+ @authroized_user = User.find_by_email(params.email)
75
+ if @authroized_user && @authroized_user.signed_in?(params)
76
+ @authroized_user.sign_out(params)
77
+ redirect params.redirect_uri
78
+ else
79
+ error = "Invalid user or already signed out."
80
+ Oauth2Authorization.error_response(error)
81
+ end
82
+ else
83
+ error = "Parameters missing or invalid."
84
+ Oauth2Authorization.error_response(error)
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,43 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ source "http://rubygems.org"
29
+
30
+
31
+ gem 'pg'
32
+ gem 'em-postgresql-adapter', :git => 'git://github.com/leftbee/em-postgresql-adapter.git'
33
+ gem 'rack-fiber_pool', :require => 'rack/fiber_pool'
34
+ gem 'em-synchrony', :git => 'git://github.com/igrigorik/em-synchrony.git',
35
+ :require => ['em-synchrony', 'em-synchrony/activerecord', 'em-synchrony/mysql2']
36
+
37
+ gem 'grape'
38
+ gem 'goliath'
39
+
40
+ gem "activerecord", "~> 3.1.1"
41
+ gem 'rack-fiber_pool', :require => 'rack/fiber_pool'
42
+ gem "mysql2"
43
+
File without changes
File without changes
@@ -1,3 +1,30 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
1
28
  require "rubygems"
2
29
  require "bundler/setup"
3
30
  require 'em-synchrony/activerecord'
@@ -0,0 +1,48 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ require 'uri'
29
+ require 'em-synchrony/activerecord'
30
+ require 'yaml'
31
+ require 'erb'
32
+
33
+ # Sets up database configuration
34
+ db = URI.parse(ENV['DATABASE_URL'] || 'http://localhost')
35
+ if db.scheme == 'postgres' # Heroku environment
36
+ ActiveRecord::Base.establish_connection(
37
+ :adapter => db.scheme == 'postgres' ? 'em_postgresql' : db.scheme,
38
+ :host => db.host,
39
+ :username => db.user,
40
+ :password => db.password,
41
+ :database => db.path[1..-1],
42
+ :encoding => 'utf8'
43
+ )
44
+ else # local environment
45
+ environment = ENV['DATABASE_URL'] ? 'production' : 'development'
46
+ db = YAML.load(ERB.new(File.read('config/database.yml')).result)[environment]
47
+ ActiveRecord::Base.establish_connection(db)
48
+ end
@@ -1,7 +1,7 @@
1
1
  production: &production
2
2
  adapter: em_postgresql
3
3
  encoding: unicode
4
- database: goliathgrape
4
+ database: rammer_app
5
5
  pool: 5
6
6
  username: root
7
7
  password:
@@ -0,0 +1,38 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ require "rubygems"
29
+ require "bundler/setup"
30
+ require 'goliath'
31
+ require 'em-synchrony/activerecord'
32
+ require 'grape'
33
+ require './tree'
34
+
35
+ class Application < Goliath::API
36
+ def response(env)
37
+ end
38
+ end
@@ -0,0 +1,30 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
28
+ Dir[File.join("./app", "**/*.rb")].each do |file|
29
+ require file
30
+ end
@@ -1,3 +1,30 @@
1
+ =begin
2
+ **************************************************************************
3
+ * The MIT License (MIT)
4
+
5
+ * Copyright (c) 2013-2014 QBurst Technologies Inc.
6
+
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+
25
+ **************************************************************************
26
+ =end
27
+
1
28
  class CreateUsers < ActiveRecord::Migration
2
29
  def change
3
30
  create_table(:users) do |t|