respond 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dfc720a10ed57fba538c3bc65bdbc75253118012
4
+ data.tar.gz: 4d5b9f649fa41039943fb7fb16deab20d2404c8d
5
+ SHA512:
6
+ metadata.gz: 678a8088d959f7f9fbcaf304c32c676ef856e66d03aaf4e36644e1238c5926fe4fdde9e30bf59a1335bb9b657cd9cd28b9a6fc010040394fd707a95c3777c51f
7
+ data.tar.gz: 22cc3313fef2e66fd78ad83983580b0f3866f05d8d40de05902eddcbe996347ee8cca26de878226121e8ab94b34bd1677263b9328f3263f6f9845f927c68c841
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in Respond.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Alireza Josheghani
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,123 @@
1
+ # Rails Respond
2
+
3
+ This package is provided to be used on rails framework and it gives clean methods to handle json response with specific predetermined messages.
4
+
5
+ # Requirement
6
+ * Ruby ^1.2
7
+ * Rails ^4.2
8
+
9
+ **The package is in process.**
10
+
11
+ ## Install
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ```ruby
16
+ gem 'Respond'
17
+ ```
18
+
19
+ And then execute:
20
+
21
+ $ bundle
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install Respond
26
+
27
+
28
+ ## Usage
29
+
30
+ You can use these methods in deffernt ways:
31
+
32
+ There are hot ones for quick usage, besides some provided to manage outputs on your own way
33
+
34
+ require library
35
+ ```ruby
36
+ require 'respond'
37
+ ```
38
+
39
+ create respond instance
40
+ ```ruby
41
+ respond = Anetwork::Respond.new
42
+ ```
43
+
44
+ **Some are shown below:**
45
+
46
+ When request succeeds and contains data to return as a result:
47
+ ```ruby
48
+ respond.succeed(data)
49
+ ```
50
+
51
+ When deletion action succeeds:
52
+ ```ruby
53
+ respond.delete_succeeded
54
+ ```
55
+
56
+ When updating succeeds:
57
+ ```ruby
58
+ respond.update_succeeded
59
+ ```
60
+
61
+ When insertion succeeds:
62
+ ```ruby
63
+ respond.insert_succeeded
64
+ ```
65
+
66
+ When deletion action fails:
67
+ ```ruby
68
+ respond.delete_faild
69
+ ```
70
+
71
+ When updating fails:
72
+ ```ruby
73
+ respond.update_faild
74
+ ```
75
+
76
+ when insertion fails:
77
+ ```ruby
78
+ respond.insert_faild
79
+ ```
80
+
81
+ Not Found Error:
82
+ ```ruby
83
+ respond.not_found
84
+ ```
85
+
86
+ When db connetion is refused:
87
+ ```ruby
88
+ respond.connection_refused
89
+ ```
90
+
91
+ When parameters entered are wrong:
92
+ ```ruby
93
+ respond.wrong_parameters
94
+ ```
95
+
96
+ When requested method is not allowed:
97
+ ```ruby
98
+ respond.method_not_allowed
99
+ ```
100
+
101
+ ```ruby
102
+ respond.request_field_notfound
103
+ ```
104
+
105
+ Validation errors:
106
+ ``` php
107
+ respond.validation_errors(data)
108
+ ```
109
+
110
+ ###customization
111
+ Set custom message for methods is like this:
112
+ ```ruby
113
+ respond.not_found('Leave it empty or enter your custom message here')
114
+ ```
115
+
116
+ And you can do more:
117
+ ```ruby
118
+ respond.set_status_code(200).set_status_text('succeed').respond_with_message('Your custom message')
119
+ ```
120
+
121
+ ## License
122
+ The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
123
+
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/lib/Messages.rb ADDED
@@ -0,0 +1,156 @@
1
+ module Anetwork
2
+
3
+ class Messages
4
+
5
+ attr_accessor :code , :text , :error , :error_code , :headers , :lang , :config
6
+
7
+ def initialize
8
+ @lang = I18n.locale
9
+ lang = 'en'
10
+
11
+ if @lang != '' || @lang != nil
12
+ lang = @lang
13
+ end
14
+
15
+ @config = eval(File.open(Rails.root.join(
16
+ 'config/respond/errors', "#{lang}.rb"
17
+ )).read)
18
+ end
19
+
20
+ def succeed(data)
21
+ self.set_status_code(200)
22
+ .set_status_text('success')
23
+ .respond_with_result(data)
24
+ end
25
+
26
+ def delete_succeeded(message = nil)
27
+ if message == nil
28
+ message = @config[:success][:delete]
29
+ end
30
+
31
+ self.set_status_code(200)
32
+ .set_status_text('success')
33
+ .respond_with_message(message)
34
+ end
35
+
36
+ def update_succeeded(message = nil)
37
+ if message == nil
38
+ message = @config[:success][:update]
39
+ end
40
+
41
+ self.set_status_code(200)
42
+ .set_status_text('success')
43
+ .respond_with_message(message)
44
+ end
45
+
46
+ def insert_succeeded(message = nil)
47
+ if message == nil
48
+ message = @config[:success][:insert]
49
+ end
50
+
51
+ self.set_status_code(200)
52
+ .set_status_text('success')
53
+ .respond_with_message(message)
54
+ end
55
+
56
+ def delete_faild(message = nil)
57
+ if message == nil
58
+ message = @config[:fail][:delete]
59
+ end
60
+
61
+ self.set_status_code(447)
62
+ .set_status_text('fail')
63
+ .set_error_code(5447)
64
+ .respond_with_message(message)
65
+ end
66
+
67
+ def update_faild(message = nil)
68
+ if message == nil
69
+ message = @config[:fail][:update]
70
+ end
71
+
72
+ self.set_status_code(449)
73
+ .set_status_text('fail')
74
+ .set_error_code(5449)
75
+ .respond_with_message(message)
76
+ end
77
+
78
+ def insert_faild(message = nil)
79
+ if message == nil
80
+ message = @config[:fail][:insert]
81
+ end
82
+
83
+ self.set_status_code(448)
84
+ .set_status_text('fail')
85
+ .set_error_code(5448)
86
+ .respond_with_message(message)
87
+ end
88
+
89
+ def connection_refused
90
+
91
+ self.set_status_code(445)
92
+ .set_status_text('fail')
93
+ .set_error_code(5445)
94
+ .respond_with_message()
95
+ end
96
+
97
+ def not_found
98
+
99
+ self.set_status_code(404)
100
+ .set_status_text('fail')
101
+ .set_error_code(5404)
102
+ .respond_with_message
103
+ end
104
+
105
+ def wrong_parameters
106
+
107
+ self.set_status_code(406)
108
+ .set_status_text('fail')
109
+ .set_error_code(5406)
110
+ .respond_with_message
111
+ end
112
+
113
+ def method_not_allowed
114
+
115
+ self.set_status_code(405)
116
+ .set_status_text('fail')
117
+ .set_error_code(5405)
118
+ .respond_with_message
119
+ end
120
+
121
+ def validation_errors(message = nil)
122
+
123
+ self.set_status_code(420)
124
+ .set_status_text('fail')
125
+ .set_error_code(5420)
126
+ .respond_with_message(message)
127
+ end
128
+
129
+ def request_field_notfound
130
+
131
+ self.set_status_code(446)
132
+ .set_status_text('fail')
133
+ .set_error_code(1001)
134
+ .respond_with_message
135
+ end
136
+
137
+ def request_field_duplicated
138
+
139
+ self.set_status_code(400)
140
+ .set_status_text('fail')
141
+ .set_error_code(1004)
142
+ .respond_with_message
143
+ end
144
+
145
+ def error(code)
146
+
147
+ self.set_status_code(400)
148
+ .set_status_text('fail')
149
+ .set_error_code(code)
150
+ .respond_with_message
151
+ end
152
+
153
+ end
154
+
155
+ end
156
+
@@ -0,0 +1,5 @@
1
+ module Anetwork
2
+ class Respond
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
data/lib/Respond.rb ADDED
@@ -0,0 +1,47 @@
1
+ require 'Messages'
2
+
3
+ module Anetwork
4
+
5
+ class Respond < Messages
6
+
7
+ def set_status_code(code)
8
+ @code = code
9
+ self
10
+ end
11
+
12
+ def set_status_text(text)
13
+ @text = text
14
+ self
15
+ end
16
+
17
+ def respond_with_message(message = nil)
18
+ result = { :status => @text , :message => message }
19
+
20
+ if message == nil
21
+ result['message'] = @error[:message]
22
+ end
23
+
24
+ if @error_code
25
+ result['error'] = @error_code
26
+ end
27
+
28
+ result
29
+ end
30
+
31
+ def respond_with_result(data)
32
+ { :status => @text, :result => data }
33
+ end
34
+
35
+ def set_error_code(error_code)
36
+ @error_code = error_code
37
+ @error = @config[error_code]
38
+ self
39
+ end
40
+
41
+ def set_headers(headers)
42
+ @headers = headers
43
+ end
44
+
45
+ end
46
+
47
+ end
data/respond.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'Respond/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'respond'
8
+ spec.version = Anetwork::Respond::VERSION
9
+ spec.authors = ['Alireza Josheghani']
10
+ spec.email = ['a.josheghani@anetwork.ir']
11
+
12
+ spec.summary = 'Easy peasy json response for ruby on rails!'
13
+ spec.description = 'This package is provided to be used on rails framework and it gives clean methods to handle json response with specific predetermined messages.'
14
+ spec.homepage = 'https://github.com/anetwork'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files`.split($/)
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_development_dependency 'bundler', '~> 1.11'
21
+ spec.add_development_dependency 'rake', '~> 10.0'
22
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: respond
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alireza Josheghani
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-12-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: This package is provided to be used on rails framework and it gives clean
42
+ methods to handle json response with specific predetermined messages.
43
+ email:
44
+ - a.josheghani@anetwork.ir
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".gitignore"
50
+ - Gemfile
51
+ - LICENSE.txt
52
+ - README.md
53
+ - Rakefile
54
+ - lib/Messages.rb
55
+ - lib/Respond.rb
56
+ - lib/Respond/version.rb
57
+ - respond.gemspec
58
+ homepage: https://github.com/anetwork
59
+ licenses:
60
+ - MIT
61
+ metadata: {}
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirements: []
77
+ rubyforge_project:
78
+ rubygems_version: 2.6.3
79
+ signing_key:
80
+ specification_version: 4
81
+ summary: Easy peasy json response for ruby on rails!
82
+ test_files: []