qiksms 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 40dde3b915b00ce11500f256afb318ff7a270c508f6e64d530b196e95d705f56
4
+ data.tar.gz: 85b96c7152e1889f2923580152366a205f2d338de7b06c5a512a01cfce4a6316
5
+ SHA512:
6
+ metadata.gz: fa18dee8c4868377156b1f93e43b05fd001baecc285bca8203ab5783a9302ecd036ddeb2d3a664eb29aff474da46c440d578b2e1f6b664e0d79cf295e5ef9203
7
+ data.tar.gz: 9f91394ba9eecb054ae75b7ceaa976c84e61310f044497b52f321d069c9ed7e5a7c48c1922b9a9e773cf3576936f975a1209c2a5d2c717331fd9ec5a6808eeeb
@@ -0,0 +1,4 @@
1
+ QIKSMS_API_SECRET=cyour-qiksms-secret
2
+ QIKSMS_API_KEY=your-qiksms-key
3
+ QIKSMS_SENDER_ID=websms
4
+ QIKSMS_CHAR_TYPE=0
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .env
10
+ .byebug_history
11
+
12
+ # rspec failure tracking
13
+ .rspec_status
14
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1 @@
1
+ inherit_from: .rubocop_todo.yml
@@ -0,0 +1,251 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2018-07-23 11:57:43 +0800 using RuboCop version 0.58.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 2
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
12
+ # Include: **/*.gemspec
13
+ Gemspec/OrderedDependencies:
14
+ Exclude:
15
+ # - 'qiksms.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Cop supports --auto-correct.
19
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
20
+ # SupportedStyles: outdent, indent
21
+ Layout/AccessModifierIndentation:
22
+ Exclude:
23
+ # - 'lib/qiksms/client.rb'
24
+
25
+ # Offense count: 2
26
+ # Cop supports --auto-correct.
27
+ # Configuration parameters: EnforcedStyleAlignWith.
28
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
29
+ Layout/BlockAlignment:
30
+ Exclude:
31
+ # - 'spec/qiksms/client_spec.rb'
32
+ # - 'spec/qiksms/configuration_spec.rb'
33
+
34
+ # Offense count: 1
35
+ # Cop supports --auto-correct.
36
+ # Configuration parameters: EnforcedStyle.
37
+ # SupportedStyles: empty_lines, no_empty_lines
38
+ Layout/EmptyLinesAroundBlockBody:
39
+ Exclude:
40
+ # - 'spec/qiksms/client_spec.rb'
41
+
42
+ # Offense count: 1
43
+ # Cop supports --auto-correct.
44
+ # Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
45
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
46
+ Layout/EndAlignment:
47
+ Exclude:
48
+ # - 'lib/qiksms/configuration.rb'
49
+
50
+ # Offense count: 1
51
+ # Cop supports --auto-correct.
52
+ # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
53
+ Layout/ExtraSpacing:
54
+ Exclude:
55
+ # - 'qiksms.gemspec'
56
+
57
+ # Offense count: 4
58
+ # Cop supports --auto-correct.
59
+ # Configuration parameters: EnforcedStyle.
60
+ # SupportedStyles: normal, rails
61
+ Layout/IndentationConsistency:
62
+ Exclude:
63
+ # - 'spec/qiksms/client_spec.rb'
64
+
65
+ # Offense count: 75
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: Width, IgnoredPatterns.
68
+ Layout/IndentationWidth:
69
+ Exclude:
70
+ # - 'Gemfile'
71
+ # - 'lib/generators/qiksms/install_generator.rb'
72
+ # - 'lib/qiksms.rb'
73
+ # - 'lib/qiksms/client.rb'
74
+ # - 'lib/qiksms/configuration.rb'
75
+ # - 'lib/qiksms/errors/configuration.rb'
76
+ # - 'spec/qiksms/client_spec.rb'
77
+ # - 'spec/qiksms/configuration_spec.rb'
78
+ # - 'spec/qiksms/install_generator_spec.rb'
79
+
80
+ # Offense count: 1
81
+ # Cop supports --auto-correct.
82
+ Layout/LeadingBlankLines:
83
+ Exclude:
84
+ # - 'qiksms.gemspec'
85
+
86
+ # Offense count: 2
87
+ # Cop supports --auto-correct.
88
+ # Configuration parameters: .
89
+ # SupportedStyles: space, no_space
90
+ Layout/SpaceAroundEqualsInParameterDefault:
91
+ EnforcedStyle: no_space
92
+
93
+ # Offense count: 2
94
+ # Cop supports --auto-correct.
95
+ # Configuration parameters: AllowForAlignment.
96
+ Layout/SpaceAroundOperators:
97
+ Exclude:
98
+ # - 'lib/qiksms/client.rb'
99
+ # - 'qiksms.gemspec'
100
+
101
+ # Offense count: 1
102
+ # Cop supports --auto-correct.
103
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
104
+ # SupportedStyles: space, no_space
105
+ # SupportedStylesForEmptyBraces: space, no_space
106
+ Layout/SpaceInsideBlockBraces:
107
+ Exclude:
108
+ # - 'Gemfile'
109
+
110
+ # Offense count: 117
111
+ # Cop supports --auto-correct.
112
+ # Configuration parameters: IndentationWidth.
113
+ Layout/Tab:
114
+ Exclude:
115
+ # - 'lib/qiksms.rb'
116
+ # - 'spec/qiksms/client_spec.rb'
117
+ # - 'spec/qiksms/configuration_spec.rb'
118
+
119
+ # Offense count: 9
120
+ # Cop supports --auto-correct.
121
+ # Configuration parameters: EnforcedStyle.
122
+ # SupportedStyles: final_newline, final_blank_line
123
+ Layout/TrailingBlankLines:
124
+ Exclude:
125
+ # - 'Gemfile'
126
+ # - 'lib/generators/qiksms/install_generator.rb'
127
+ # - 'lib/qiksms.rb'
128
+ # - 'lib/qiksms/client.rb'
129
+ # - 'lib/qiksms/configuration.rb'
130
+ # - 'lib/qiksms/errors/configuration.rb'
131
+ # - 'spec/qiksms/client_spec.rb'
132
+ # - 'spec/qiksms/configuration_spec.rb'
133
+ # - 'spec/qiksms/install_generator_spec.rb'
134
+
135
+ # Offense count: 20
136
+ # Cop supports --auto-correct.
137
+ # Configuration parameters: AllowInHeredoc.
138
+ Layout/TrailingWhitespace:
139
+ Exclude:
140
+ # - 'lib/qiksms.rb'
141
+ # - 'lib/qiksms/client.rb'
142
+ # - 'lib/qiksms/configuration.rb'
143
+ # - 'spec/qiksms/client_spec.rb'
144
+ # - 'spec/qiksms/configuration_spec.rb'
145
+ # - 'spec/qiksms/install_generator_spec.rb'
146
+
147
+ # Offense count: 1
148
+ Lint/DuplicateMethods:
149
+ Exclude:
150
+ - 'lib/qiksms.rb'
151
+
152
+ # Offense count: 1
153
+ Lint/ShadowingOuterLocalVariable:
154
+ Exclude:
155
+ # - 'spec/spec_helper.rb'
156
+
157
+ # Offense count: 3
158
+ # Configuration parameters: CountComments, ExcludedMethods.
159
+ # ExcludedMethods: refine
160
+ Metrics/BlockLength:
161
+ Max: 52
162
+
163
+ # Offense count: 4
164
+ Style/Documentation:
165
+ Exclude:
166
+ # - 'spec/**/*'
167
+ # - 'test/**/*'
168
+ # - 'lib/generators/qiksms/install_generator.rb'
169
+ # - 'lib/qiksms.rb'
170
+ # - 'lib/qiksms/client.rb'
171
+ # - 'lib/qiksms/configuration.rb'
172
+
173
+ # Offense count: 3
174
+ # Cop supports --auto-correct.
175
+ Style/ExpandPathArguments:
176
+ Exclude:
177
+ # - 'lib/generators/qiksms/install_generator.rb'
178
+ # - 'qiksms.gemspec'
179
+ # - 'spec/qiksms/install_generator_spec.rb'
180
+
181
+ # Offense count: 1
182
+ # Cop supports --auto-correct.
183
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
184
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
185
+ Style/HashSyntax:
186
+ Exclude:
187
+ # - 'Rakefile'
188
+
189
+ # Offense count: 3
190
+ # Cop supports --auto-correct.
191
+ Style/MutableConstant:
192
+ Exclude:
193
+ - 'lib/qiksms/client.rb'
194
+ # - 'lib/qiksms/version.rb'
195
+
196
+ # Offense count: 3
197
+ # Cop supports --auto-correct.
198
+ # Configuration parameters: PreferredDelimiters.
199
+ Style/PercentLiteralDelimiters:
200
+ Exclude:
201
+ # - 'qiksms.gemspec'
202
+ # - 'spec/qiksms/install_generator_spec.rb'
203
+
204
+ # Offense count: 1
205
+ # Cop supports --auto-correct.
206
+ # Configuration parameters: EnforcedStyle.
207
+ # SupportedStyles: short, verbose
208
+ Style/PreferredHashMethods:
209
+ Exclude:
210
+ # - 'lib/qiksms/client.rb'
211
+
212
+ # Offense count: 1
213
+ # Cop supports --auto-correct.
214
+ # Configuration parameters: AllowMultipleReturnValues.
215
+ Style/RedundantReturn:
216
+ Exclude:
217
+ # - 'lib/qiksms/client.rb'
218
+
219
+ # Offense count: 1
220
+ # Cop supports --auto-correct.
221
+ Style/RedundantSelf:
222
+ Exclude:
223
+ # - 'lib/qiksms/client.rb'
224
+
225
+ # Offense count: 37
226
+ # Cop supports --auto-correct.
227
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
228
+ # SupportedStyles: single_quotes, double_quotes
229
+ Style/StringLiterals:
230
+ Exclude:
231
+ # - 'Gemfile'
232
+ # - 'Rakefile'
233
+ # - 'bin/console'
234
+ # - 'lib/generators/qiksms/install_generator.rb'
235
+ # - 'lib/qiksms/configuration.rb'
236
+ # - 'lib/qiksms/version.rb'
237
+ # - 'qiksms.gemspec'
238
+ # - 'spec/qiksms_spec.rb'
239
+ # - 'spec/spec_helper.rb'
240
+
241
+ # Offense count: 2
242
+ # Cop supports --auto-correct.
243
+ Style/UnneededPercentQ:
244
+ Exclude:
245
+ # - 'qiksms.gemspec'
246
+
247
+ # Offense count: 24
248
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
249
+ # URISchemes: http, https
250
+ Metrics/LineLength:
251
+ Max: 162
@@ -0,0 +1,22 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.1
5
+ before_install: gem install bundler -v 1.16.1
6
+ notifications: false
7
+
8
+ env:
9
+ global:
10
+ - CC_TEST_REPORTER_ID=a3b7526acf2673cd554941961e6a84ee041978350b16f49ac2d4cc6eb2149427
11
+
12
+ before_script:
13
+ - bundle exec rspec && CODECLIMATE_REPO_TOKEN=a3b7526acf2673cd554941961e6a84ee041978350b16f49ac2d4cc6eb2149427
14
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
15
+ - chmod +x ./cc-test-reporter
16
+ - ./cc-test-reporter before-build
17
+
18
+ scripts:
19
+ - bundle exec rspec spec
20
+
21
+ after_script:
22
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at meralpisdenmark@gmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in qiksms.gemspec
6
+ gemspec
7
+
8
+ group :test do
9
+ gem 'byebug'
10
+ gem 'generator_spec'
11
+ gem 'rubocop'
12
+ gem 'simplecov'
13
+ gem 'simplecov-console'
14
+ end
@@ -0,0 +1,53 @@
1
+ [![Build Status](https://travis-ci.org/denmarkmeralpis/qiksms.svg?branch=master)](https://travis-ci.org/denmarkmeralpis/qiksms) [![Test Coverage](https://api.codeclimate.com/v1/badges/ea4b451049d8a6ac530b/test_coverage)](https://codeclimate.com/github/denmarkmeralpis/qiksms/test_coverage) [![Maintainability](https://api.codeclimate.com/v1/badges/ea4b451049d8a6ac530b/maintainability)](https://codeclimate.com/github/denmarkmeralpis/qiksms/maintainability) [![Gem Version](https://badge.fury.io/rb/qiksms.svg)](https://badge.fury.io/rb/qiksms)
2
+ # Qiksms
3
+
4
+ This ruby plugin will easily help you send SMS using qiksms API. You can contact qiksms to enable your Developers API console.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'qiksms'
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install qiksms
21
+
22
+ Then generate initializer:
23
+
24
+ $ rails g qiksms:install
25
+
26
+ then edit the file in `config/initializer/qiksms.rb` and supply the necessary details.
27
+
28
+ ## Usage
29
+
30
+ Send SMS:
31
+ ```ruby
32
+ client = Qiksms::Client.new(recipient: '917XXXXXXX', message: 'Your awesome message!')
33
+ client.send
34
+ ```
35
+ or simply:
36
+ ```ruby
37
+ Qiksms::Client.send(recipient: '917XXXXXXX', message: 'Your awesome message!')
38
+ ```
39
+
40
+ You can also change the `sender_id` and `char_type` on the fly:
41
+ ```ruby
42
+ Qiksms::Client.send(recipient: '917XXXXXXX', message: 'Your awesome message!', char_type: '8', sender_id: 'custom')
43
+ ```
44
+
45
+ NOTE: Changing of `sender_id` requires approval/subscription from https://wwww.qiksms.com
46
+
47
+ ## Contributing
48
+
49
+ Bug reports and pull requests are welcome on GitHub at https://github.com/denmarkmeralpis/qiksms. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
50
+
51
+ ## Code of Conduct
52
+
53
+ Everyone interacting in the Qiksms project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/denmarkmeralpis/qiksms/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'qiksms'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,18 @@
1
+ require 'rails/generators'
2
+
3
+ # name
4
+ module Qiksms
5
+ # Generator
6
+ module Generators
7
+ # Class generatpr
8
+ class InstallGenerator < Rails::Generators::NamedBase
9
+ source_root File.expand_path('templates', __dir__)
10
+ desc 'Creates qiksms.rb initializer for your application'
11
+
12
+ def copy_initializer
13
+ template 'qiksms_initializer.rb', 'config/initializers/qiksms.rb'
14
+ puts 'Done install! Configure the file in config/initializers/qiksms.rb'
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ Qiksms.configure do |config|
2
+ # Get it from qiksms.com
3
+ config.api_key = ENV['QIKSMS_API_KEY']
4
+
5
+ # Get it from qiksms.com
6
+ config.api_secret = ENV['QIKSMS_API_SECRET']
7
+
8
+ # This will be the name of the sender
9
+ # If you want to change this, contact Qiksms
10
+ config.sender_id = 'websms'
11
+
12
+ # When using the Unicode message, the message length becomes 70 chars max per message.
13
+ # char_type 0 is not unicode
14
+ # char_type 8 is unicode message
15
+ config.char_type = '0'
16
+ end
@@ -0,0 +1,24 @@
1
+ require 'qiksms/version'
2
+ require 'qiksms/configuration'
3
+ require 'qiksms/client'
4
+ require 'qiksms/errors/configuration'
5
+ require 'generators/qiksms/install_generator'
6
+
7
+ # Qiksms configuration block
8
+ module Qiksms
9
+ class << self
10
+ attr_accessor :configuration
11
+ end
12
+
13
+ def self.configuration
14
+ @configuration ||= Configuration.new
15
+ end
16
+
17
+ def self.reset
18
+ @configuration = Configuration.new
19
+ end
20
+
21
+ def self.configure
22
+ yield(configuration)
23
+ end
24
+ end
@@ -0,0 +1,63 @@
1
+ require 'net/http'
2
+ require 'json'
3
+
4
+ # namespace
5
+ module Qiksms
6
+ # class
7
+ class Client
8
+ attr_accessor :api_key, :api_secret, :recipient, :message
9
+
10
+ MSG_PARAMS = {}
11
+ HOST = 'https://app.qiksms.com/api/send'.freeze
12
+
13
+ def initialize(options={})
14
+ @api_key = Qiksms.configuration.api_key
15
+ @api_secret = Qiksms.configuration.api_secret
16
+ @sender_id = options[:sender_id]
17
+ @char_type = options[:char_type]
18
+ @recipient = options[:recipient]
19
+ @message = options[:message]
20
+ end
21
+
22
+ def sender_id
23
+ @sender_id ||= Qiksms.configuration.sender_id
24
+ end
25
+
26
+ def char_type
27
+ @char_type ||= Qiksms.configuration.char_type
28
+ end
29
+
30
+ def send
31
+ uri = URI(HOST)
32
+
33
+ request = Net::HTTP.post_form(uri, message_params)
34
+ response = JSON.parse(request.body, symbolize_names: true)
35
+
36
+ return raise Errors::Authentication, response[:error] if response.key?(:error)
37
+
38
+ case response[:code]
39
+ when 200
40
+ response
41
+ when 422
42
+ raise Errors::BadRequest, response[:message]
43
+ end
44
+ end
45
+
46
+ def self.send(options={})
47
+ obj = new(options)
48
+ obj.send
49
+ end
50
+
51
+ private
52
+
53
+ def message_params
54
+ MSG_PARAMS['api_secret'] = api_secret
55
+ MSG_PARAMS['api_key'] = api_key
56
+ MSG_PARAMS['recipient'] = recipient
57
+ MSG_PARAMS['message'] = message
58
+ MSG_PARAMS['char_type'] = char_type
59
+ MSG_PARAMS['from'] = sender_id
60
+ MSG_PARAMS
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,34 @@
1
+ # namespacing
2
+ module Qiksms
3
+ # class cofiguration
4
+ class Configuration
5
+ attr_writer :api_key, :api_secret, :char_type, :sender_id
6
+
7
+ def initialize
8
+ @api_key = nil
9
+ @api_secret = nil
10
+ @char_type = nil
11
+ @sender_id = nil
12
+ end
13
+
14
+ def api_key
15
+ raise Errors::Configuration, 'Qiksms api_key is missing! See documentation for configuration settings.' unless @api_key
16
+ @api_key
17
+ end
18
+
19
+ def api_secret
20
+ raise Errors::Configuration, 'Qiksms api_secret is missing! See documentation for configuration settings.' unless @api_secret
21
+ @api_secret
22
+ end
23
+
24
+ def char_type
25
+ raise Errors::Configuration, 'Qiksms char_type is missing! See documentation for configuration settings.' unless @char_type
26
+ @char_type
27
+ end
28
+
29
+ def sender_id
30
+ raise Errors::Configuration, 'Qiksms sender_id is missing! See documentation for configuration settings.' unless @sender_id
31
+ @sender_id
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ module Qiksms
2
+ module Errors
3
+ class Configuration < StandardError; end
4
+ class Authentication < StandardError; end
5
+ class BadRequest < StandardError; end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module Qiksms
2
+ VERSION = '0.0.1'.freeze
3
+ end
@@ -0,0 +1,37 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'qiksms/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'qiksms'
7
+ spec.version = Qiksms::VERSION
8
+ spec.authors = ['Nujian Den Mark Meralpis']
9
+ spec.email = ['denmarkmeralpis@gmail.com', 'meralpisdenmark@gmail.com']
10
+
11
+ spec.summary = 'A simple way of sending SMS using qiksms'
12
+ spec.description = 'This gem is intended for developers that requires SMS integration to their ruby application.'
13
+ spec.homepage = 'https://github.com/denmarkmeralpis/qiksms'
14
+
15
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
17
+ if spec.respond_to?(:metadata)
18
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org/gems/qiksms'
19
+ else
20
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
21
+ 'public gem pushes.'
22
+ end
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ f.match(%r{^(test|spec|features)/})
26
+ end
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_development_dependency 'bundler', '~> 1.16'
32
+ spec.add_development_dependency 'dotenv', '~> 2.5'
33
+ spec.add_development_dependency 'rails', '~> 5.2'
34
+ spec.add_development_dependency 'rake', '~> 10.0'
35
+ spec.add_development_dependency 'rspec', '~> 3.0'
36
+ spec.add_development_dependency 'webmock', '~> 3.4'
37
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: qiksms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nujian Den Mark Meralpis
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-07-23 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.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dotenv
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.4'
97
+ description: This gem is intended for developers that requires SMS integration to
98
+ their ruby application.
99
+ email:
100
+ - denmarkmeralpis@gmail.com
101
+ - meralpisdenmark@gmail.com
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".env_sample"
107
+ - ".gitignore"
108
+ - ".rspec"
109
+ - ".rubocop.yml"
110
+ - ".rubocop_todo.yml"
111
+ - ".travis.yml"
112
+ - CODE_OF_CONDUCT.md
113
+ - Gemfile
114
+ - Gemfile.lock
115
+ - README.md
116
+ - Rakefile
117
+ - bin/console
118
+ - bin/setup
119
+ - lib/generators/qiksms/install_generator.rb
120
+ - lib/generators/qiksms/templates/qiksms_initializer.rb
121
+ - lib/qiksms.rb
122
+ - lib/qiksms/client.rb
123
+ - lib/qiksms/configuration.rb
124
+ - lib/qiksms/errors/configuration.rb
125
+ - lib/qiksms/version.rb
126
+ - qiksms.gemspec
127
+ homepage: https://github.com/denmarkmeralpis/qiksms
128
+ licenses: []
129
+ metadata:
130
+ allowed_push_host: https://rubygems.org/gems/qiksms
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.7.6
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: A simple way of sending SMS using qiksms
151
+ test_files: []