ncmb-ruby-client 0.1.3 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e65e1b5191a72496c2e4a2e9d8ab68c763c2ed8a
4
- data.tar.gz: 68d517fcc314a76e414fd7aa7c102620c3354b0a
2
+ SHA256:
3
+ metadata.gz: 325cb5e8ea166ccd9c833479bf76b39cb808d960732ade4362b98c853c3e93dc
4
+ data.tar.gz: 9d416ff772a6be5ed268b644dd9e21b6d727d564d2fa453164604ac755d4c9ff
5
5
  SHA512:
6
- metadata.gz: 023b10a8a2fc0e80b599bfea180b8f702fd10ec18a6365512ff30e3f321d673494ceed1a9bb82194b8cb2a0e4273be8c428e99ca3a7e56a785979b42b89b92a3
7
- data.tar.gz: 091f60a5952d5d34c1dfcc04bdac6cb463cf1fd08a8fde9c596c17344b72de396675dee5ad4f1e6f830e683f116f04bc7b6aa7c289f88b303b2310434dac5d11
6
+ metadata.gz: a4ff1e970aa5f31b78a48d92a6ac5b18fa64a926e724a9c1cd7675180c8e31a06ef37447c611e59f079940d885e8610fb996b0c2d5d6f22efc53f5dd14075167
7
+ data.tar.gz: 67fd00eb2d8d924e5b8d07c4cdda94753b9f8b61166b65dc31e2c705d23592f63cd3f68ae17ff73e0ae0a71d3289c809b4bce0aef758d1b2f2851fc2bb0b0309
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  setting.yml
19
19
  .DS_Store
20
+ vendor/
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
data/Gemfile CHANGED
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
4
+
5
+ gem 'mime-types'
2
6
  gem 'simplecov'
3
7
  gem 'simplecov-gem-profile'
4
- gem 'mime-types'
5
8
  # Specify your gem's dependencies in ncmb-ruby-client.gemspec
6
9
  gemspec
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ncmb-ruby-client
2
2
  ================
3
3
 
4
- A simple Ruby client for the nifty cloud mobile backend REST API
4
+ A simple Ruby client for the nifty cloud mobile backend REST API. This is developer preview.
5
5
 
6
6
  Basic Usage
7
7
  -----------
@@ -47,4 +47,109 @@ else
47
47
  end
48
48
  ```
49
49
 
50
- [ニフティクラウド mobile backend](http://mb.cloud.nifty.com/)
50
+ ## Unit test
51
+
52
+ ### Settings
53
+ * Install libraries
54
+ ```
55
+ bundle install
56
+ ```
57
+ * Rename file `setting_default.yml` to `setting.yml` and then fill you `application_key`, `client_key`
58
+
59
+ ### Run unit test
60
+ Run `spec` task:
61
+ ```
62
+ rake spec
63
+ ```
64
+
65
+ ## Run all examples
66
+
67
+ Run `examples` task:
68
+
69
+ ```
70
+ rake examples
71
+ ```
72
+
73
+ Or you can run every single example
74
+
75
+ ```
76
+ ruby examples/example_file_name.rb
77
+ ```
78
+
79
+ ## Test script
80
+
81
+ Before run `examples/script.rb`, you should upload the below script files to Script function on the Console screen.
82
+
83
+ ### helloworld.js
84
+
85
+ * File Name: helloworld.js
86
+ * Method: GET
87
+ * File Status: Executable
88
+ ```javascript
89
+ module.exports = function(req, res) {
90
+ res.send('{"msg":"Hello World!"}');
91
+ }
92
+ ```
93
+
94
+ ### helloworld2.js
95
+
96
+ * File Name: helloworld2.js
97
+ * Method: GET
98
+ * File Status: Executable
99
+ ```javascript
100
+ module.exports = function(req, res) {
101
+ if (req.query.name) {
102
+ res.send('{"msg":"Hello ' + req.query.name +'!"}');
103
+ } else {
104
+ res.send('{"msg":"Hello World!"}');
105
+ }
106
+ }
107
+ ```
108
+
109
+ ### email.js
110
+
111
+ * File Name: email.js
112
+ * Method: POST
113
+ * File Status: Executable
114
+
115
+ (Don't forget to change `YOUR-APPLICATION-KEY` and `YOUR-CLIENT-KEY` to your value before upload.)
116
+
117
+ ```javascript
118
+ function saveData(req, res) {
119
+ // POSTのデータを取得
120
+ var email = req.body.email;
121
+ var message = req.body.body;
122
+
123
+ var NCMB = require('ncmb');
124
+ var ncmb = new NCMB('YOUR-APPLICATION-KEY', 'YOUR-CLIENT-KEY');
125
+
126
+ // データを保存する
127
+ var Item = ncmb.DataStore('Item');
128
+ var item = new Item();
129
+ item.set("email", email)
130
+ .set("message", message)
131
+ .save()
132
+ .then(function(item){
133
+ // 成功
134
+ res.send('{"msg":"POST data successfully!"}');
135
+
136
+ })
137
+ .catch(function(err){
138
+ // 失敗
139
+ res.send('{"msg":"' + err + '"}');
140
+ });
141
+ }
142
+
143
+ module.exports = saveData;
144
+ ```
145
+
146
+ ## Environment to confirm
147
+
148
+ * Ruby v2.7.3 - Bundler version 2.1.4
149
+ * Ruby v3.0.1 - Bundler version 2.2.15
150
+
151
+ ## License
152
+
153
+ MIT.
154
+
155
+ [ニフクラ mobile backend](https://mbaas.nifcloud.com/)
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
 
3
5
  Bundler.setup
@@ -6,4 +8,8 @@ require 'rspec/core/rake_task'
6
8
  desc "run spec"
7
9
  RSpec::Core::RakeTask.new(:spec) do |t|
8
10
  t.rspec_opts = ["--color", "--format documentation"]
11
+ end
12
+
13
+ task :examples do
14
+ FileList['examples/*.rb'].each { |file| ruby file }
9
15
  end
data/examples/acl_test.rb CHANGED
@@ -1,16 +1,22 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
7
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
10
+ NCMB.initialize(
11
+ application_key: yaml['application_key'],
12
+ client_key: yaml['client_key']
13
+ )
8
14
 
9
15
  @users = []
10
16
 
11
17
  @ids = [
12
- {id: 'testUser1', password: 'testPassword1'},
13
- {id: 'testUser2', password: 'testPassword2'}
18
+ { id: 'testUser1', password: 'testPassword1' },
19
+ { id: 'testUser2', password: 'testPassword2' }
14
20
  ]
15
21
  @ids.each do |hash|
16
22
  @user = NCMB::User.login(hash[:id], hash[:password])
@@ -37,7 +43,7 @@ end
37
43
  @item.acl.public('write', false)
38
44
  @item.acl.user(@users[0], 'read', true)
39
45
  @item.acl.user(@users[0], 'write', true)
40
- @role = NCMB::Role.find_or_create("manager2")
46
+ @role = NCMB::Role.find_or_create('manager2')
41
47
 
42
48
  @item.acl.role(@role, 'read', true)
43
49
  @item.acl.role(@role, 'write', true)
data/examples/csv_test.rb CHANGED
@@ -1,23 +1,32 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  require 'csv'
7
10
 
8
11
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
9
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
12
+ NCMB.initialize(
13
+ application_key: yaml['application_key'],
14
+ client_key: yaml['client_key']
15
+ )
10
16
  @todo = NCMB::DataStore.new 'TestClass'
11
- 1000.times do |i|
12
- @todo.post(message: "Hello! #{i}")
17
+ 20.times do |i|
18
+ item = @todo.new
19
+ item.set('message', "Hello! #{i}")
20
+ item.save
13
21
  end
14
- @todos = @todo.limit(20).count(1).skip(0)
22
+
23
+ @todos = @todo.limit(10).skip(0)
15
24
 
16
25
  csv_string = CSV.generate do |csv|
17
- csv << @todos.first.columns
26
+ csv << @todos.first.fields.keys
18
27
  @todos.each do |todo|
19
28
  params = []
20
- todo.columns.each do |name|
29
+ todo.fields.keys.each do |name|
21
30
  params << todo.call(name)
22
31
  end
23
32
  csv << params
@@ -1,10 +1,16 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
7
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
10
+ NCMB.initialize(
11
+ application_key: yaml['application_key'],
12
+ client_key: yaml['client_key']
13
+ )
8
14
 
9
15
  example = NCMB::DataStore.new 'Example'
10
16
  example.delete_all
@@ -14,7 +20,7 @@ example.delete_all
14
20
  item.set('String', "テスト#{i}00")
15
21
  item.set('Integer', i)
16
22
  item.set('Boolean', true)
17
- item.set('Array', [i, i * 2, i * 3, "Orange", "Tomato"])
23
+ item.set('Array', [i, i * 2, i * 3, 'Orange', 'Tomato'])
18
24
  item.set('Object', {test1: 'a', test2: 'b'})
19
25
  item.set('Location', NCMB::GeoPoint.new((i + 1) * 10, (i + 2) * 5))
20
26
  item.set('MultipleLine', "test\ntest\n")
@@ -37,7 +43,8 @@ geo1 = NCMB::GeoPoint.new(50, 30);
37
43
  geo2 = NCMB::GeoPoint.new(51, 31);
38
44
 
39
45
  # @todo = @todo.limit(20).withinKilometers("Location", geo1, 1000)
40
- example = example.limit(1).withinSquare("Location", geo1, geo2)
46
+
47
+ example = example.limit(1).withinSquare('Location', geo1, geo2)
41
48
  begin
42
49
  example.each_with_index do |item, i|
43
50
  puts item[:String]
@@ -50,6 +57,7 @@ begin
50
57
  # item.update
51
58
  end
52
59
  rescue NCMB::FetchError => e
60
+ puts e
53
61
  puts example.error
54
62
  end
55
63
 
@@ -1,30 +1,36 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  require 'open-uri'
7
10
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
8
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
11
+ NCMB.initialize(
12
+ application_key: yaml['application_key'],
13
+ client_key: yaml['client_key']
14
+ )
9
15
 
10
- f = NCMB::NFile.new('http://mb.cloud.nifty.com/assets/images/logo.png')
16
+ f = NCMB::NFile.new('https://mbaas.nifcloud.com/assets/images/logo.png')
11
17
  f.acl.public('read', true)
12
18
  f.acl.public('write', true)
13
- f.fileName = "test.png"
19
+ f.fileName = 'test.png'
14
20
  f.save()
15
- puts "Uploaded"
21
+ puts 'Uploaded'
16
22
  f.file = 'http://k.yimg.jp/images/top/sp2/cmn/logo-ns_d_131205.png'
17
23
  f.update()
18
- puts "Updated"
24
+ puts 'Updated'
19
25
  f.delete()
20
- puts "Deleted"
26
+ puts 'Deleted'
21
27
 
22
- f = NCMB::NFile.new('http://mb.cloud.nifty.com/assets/images/logo.png')
28
+ f = NCMB::NFile.new('https://mbaas.nifcloud.com/assets/images/logo.png')
23
29
  f.acl.public('read', true)
24
30
  f.acl.public('write', true)
25
- f.fileName = "test.png"
31
+ f.fileName = 'test.png'
26
32
  f.save()
27
- file = NCMB::NFile.new("test.png")
28
- fp = open("test.png", "w")
33
+ file = NCMB::NFile.new('test.png')
34
+ fp = open('test.png', 'w')
29
35
  fp.write(file.get)
30
36
  fp.close
@@ -1,10 +1,16 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
7
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
10
+ NCMB.initialize(
11
+ application_key: yaml['application_key'],
12
+ client_key: yaml['client_key']
13
+ )
8
14
 
9
15
  example = NCMB::DataStore.new 'Example'
10
16
 
@@ -12,13 +18,13 @@ require 'benchmark'
12
18
 
13
19
  ary = []
14
20
  Benchmark.bm 10 do |r|
15
- r.report "Save DataStore" do
21
+ r.report 'Save DataStore' do
16
22
  100.times do |i|
17
23
  item = example.new
18
24
  item.set('String', "テスト#{i}00")
19
25
  item.set('Integer', i)
20
26
  item.set('Boolean', true)
21
- item.set('Array', [i, i * 2, i * 3, "Orange", "Tomato"])
27
+ item.set('Array', [i, i * 2, i * 3, 'Orange', 'Tomato'])
22
28
  item.set('Object', {test1: 'a', test2: 'b'})
23
29
  item.set('Location', NCMB::GeoPoint.new(30, 50))
24
30
  item.set('MultipleLine', "test\ntest\n")
@@ -28,7 +34,7 @@ Benchmark.bm 10 do |r|
28
34
  ary << item.objectId
29
35
  end
30
36
  end
31
- r.report "Delete objects" do
37
+ r.report 'Delete objects' do
32
38
  ary.each do |objectId|
33
39
  item = example.new(objectId: objectId)
34
40
  item.delete
@@ -1,16 +1,22 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
7
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
10
+ NCMB.initialize(
11
+ application_key: yaml['application_key'],
12
+ client_key: yaml['client_key']
13
+ )
8
14
 
9
15
  Parent = NCMB::DataStore.new 'Parent'
10
16
 
11
17
  Child = NCMB::DataStore.new 'Child'
12
- child = Child.new(name: "Taro")
13
- parent = Parent.new(name: "Oya")
18
+ child = Child.new(name: 'Taro')
19
+ parent = Parent.new(name: 'Oya')
14
20
  parent.child = child
15
21
  parent.save
16
22
 
data/examples/push.rb CHANGED
@@ -1,18 +1,24 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $:.unshift(File.dirname(__FILE__))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
3
6
  require 'rubygems'
4
7
  require 'ncmb'
5
8
  require 'yaml'
6
9
  yaml = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'setting.yml'))
7
- NCMB.initialize application_key: yaml['application_key'], client_key: yaml['client_key']
10
+ NCMB.initialize(
11
+ application_key: yaml['application_key'],
12
+ client_key: yaml['client_key']
13
+ )
8
14
 
9
15
  @push = NCMB::Push.new
10
16
  @push.immediateDeliveryFlag = true
11
17
  @push.target = ['ios']
12
- @push.message = "This is test message"
13
- @push.deliveryExpirationTime = "3 day"
18
+ @push.message = 'This is test message'
19
+ @push.deliveryExpirationTime = '3 day'
14
20
  if @push.save
15
- puts "Push save successful."
21
+ puts 'Push save successful.'
16
22
  else
17
- puts "Push save faild."
23
+ puts 'Push save faild.'
18
24
  end