rammer 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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|