opentie-core 0.0.7 → 0.0.8
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 +8 -8
- data/.ruby-version +1 -0
- data/.travis.yml +3 -0
- data/lib/opentie/core/account.rb +3 -0
- data/lib/opentie/core/group.rb +6 -1
- data/lib/opentie/core/message.rb +3 -0
- data/lib/opentie/core/persona.rb +7 -0
- data/lib/opentie/core/project.rb +8 -5
- data/lib/opentie/core/request.rb +52 -40
- data/lib/opentie/core/version.rb +1 -1
- data/lib/opentie/core.rb +3 -0
- data/opentie-core.gemspec +5 -0
- data/spec/form_schema_spec.rb +0 -9
- data/spec/project_spec.rb +21 -5
- data/spec/spec_helper.rb +37 -34
- metadata +58 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDVlZDg2NjQyZTIyOWM0NjVjZjBhY2E0MDJhNWI2ZGYxOTg4ZDNhNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjQ3MjdlZmU5MDYzZWViY2JhZWU3NjA2ZTJkMDg4N2Q0ZTVjODYwMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGRiNzdmYTViZjI1NjliMDBlZmZmZTM4ODVjNGQxZjI3MTg3ZmE1Mzk1YzFm
|
10
|
+
MTIxN2RjMDQxNTcyOTg4YzUzMGY2MTE0MDgwNjViY2Y1YWRjYjJmNmUyZjYw
|
11
|
+
M2YzNzA4ZmFmMzAyZTY1ZjdiZmNhYTY2YzNhM2VjMWU2ZDNhOWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTA1YTY2MjYxZDBhMGFlY2Q3ODIyMWZlMGQzMDJhZjM1ZWU5ODAyNjA1ODE3
|
14
|
+
ZGEwYWMwZmFkYmEyOGExYWFiYzQwNjY5NzhhYjgxYjdmZTBiMmM0MTQyNWQw
|
15
|
+
OWYyNmI0YWI1NDBiYTg1Mzk1MmMzZmVkZmUyMzE5YWQ1NTEzODI=
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.0
|
data/.travis.yml
CHANGED
@@ -10,3 +10,6 @@ deploy:
|
|
10
10
|
provider: rubygems
|
11
11
|
api_key:
|
12
12
|
secure: en9qumDRaMUYYjixHQX6nJjRKe8J7C3RLn5gvFwZECV1viuPy2Fk7dOTSjcDYZciDqFCi+mnjmwOvqP+KE0gSgKnVvCsh8MfBlhwWLjIVESEUWCNHeDVbnk+e7RySTuiCQvmnXZkJZe2AJvwVX5zOdPu4ouk8hcmkXITGn3fXuI=
|
13
|
+
notifications:
|
14
|
+
slack:
|
15
|
+
secure: ObriTLEO71l8dz5lPyT5O7RblHpSUJ+OElVz1QH4ytQdjL10QlOp1jGbvc9Qsn0ftA3fkTxqXbGR7slFR7isHVF86DR+sg0ghnFpB6X/PDqVjN0Wfb+1ZSHwbaWvK45ePGjTXzGQPdfgGn1g7rpv4X3xe95eCDUUOZBh8GMejCw=
|
data/lib/opentie/core/account.rb
CHANGED
data/lib/opentie/core/group.rb
CHANGED
data/lib/opentie/core/message.rb
CHANGED
data/lib/opentie/core/persona.rb
CHANGED
data/lib/opentie/core/project.rb
CHANGED
@@ -1,16 +1,19 @@
|
|
1
|
-
require_relative 'request'
|
2
|
-
|
3
1
|
module Opentie::Core
|
4
2
|
module Project
|
5
3
|
extend ActiveSupport::Concern
|
6
4
|
|
5
|
+
included do
|
6
|
+
include FormSchema
|
7
|
+
end
|
8
|
+
|
7
9
|
module ClassMethods
|
8
|
-
def
|
9
|
-
@
|
10
|
+
def request_class_name_is(class_name)
|
11
|
+
@request_class_name = class_name
|
12
|
+
has_many :requests, class_name: class_name, inverse_of: :project
|
10
13
|
end
|
11
14
|
|
12
15
|
def request_class
|
13
|
-
@
|
16
|
+
@request_class ||= @request_class_name.constantize
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
data/lib/opentie/core/request.rb
CHANGED
@@ -1,45 +1,57 @@
|
|
1
|
-
|
1
|
+
module Opentie::Core
|
2
|
+
module Request
|
3
|
+
extend ActiveSupport::Concern
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
included do
|
6
|
+
include Mongoid::Document
|
7
|
+
include Mongoid::Enum
|
8
|
+
include FormSchema
|
9
|
+
|
10
|
+
@inherited = method(:inherited)
|
11
|
+
def self.inherited(subclass)
|
12
|
+
@inherited.call subclass
|
13
|
+
inherited_hook subclass
|
14
|
+
end
|
15
|
+
|
16
|
+
# list of all requests / applications
|
17
|
+
@all_kinds = []
|
7
18
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
19
|
+
field :commited, type: Boolean, default: false
|
20
|
+
field :created_at, type: Time
|
21
|
+
field :updated_at, type: Time
|
22
|
+
end
|
23
|
+
|
24
|
+
module ClassMethods
|
25
|
+
def project_class_name_is(class_name)
|
26
|
+
belongs_to :project, class_name: class_name, inverse_of: :requests
|
27
|
+
end
|
28
|
+
|
29
|
+
def subject(t)
|
30
|
+
@subject = t
|
31
|
+
end
|
32
|
+
|
33
|
+
def application_period(t)
|
34
|
+
@application_period = t
|
35
|
+
end
|
36
|
+
|
37
|
+
def optional(t)
|
38
|
+
@optional = t
|
39
|
+
end
|
40
|
+
|
41
|
+
def in_charge_of(t)
|
42
|
+
@in_charge_of = t
|
43
|
+
end
|
44
|
+
|
45
|
+
def available? (project)
|
46
|
+
@application_period.cover? Time.now
|
47
|
+
end
|
48
|
+
|
49
|
+
def inherited_hook(subclass)
|
50
|
+
@all_kinds << subclass
|
51
|
+
end
|
52
|
+
|
53
|
+
def all_request_types
|
54
|
+
@all_kinds
|
43
55
|
end
|
44
56
|
end
|
45
57
|
end
|
data/lib/opentie/core/version.rb
CHANGED
data/lib/opentie/core.rb
CHANGED
data/opentie-core.gemspec
CHANGED
@@ -30,4 +30,9 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "guard-rspec"
|
31
31
|
spec.add_development_dependency "factory_girl"
|
32
32
|
spec.add_development_dependency "database_cleaner"
|
33
|
+
|
34
|
+
spec.add_development_dependency "pry"
|
35
|
+
spec.add_development_dependency "pry-byebug"
|
36
|
+
spec.add_development_dependency "pry-doc"
|
37
|
+
spec.add_development_dependency "better_errors"
|
33
38
|
end
|
data/spec/form_schema_spec.rb
CHANGED
@@ -1,17 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require_relative 'spec_helper'
|
3
|
-
require 'database_cleaner'
|
4
3
|
|
5
4
|
RSpec.describe Opentie::Core::Project, :type => :model do
|
6
5
|
describe "FakeProject" do
|
7
|
-
before :each do
|
8
|
-
DatabaseCleaner.start
|
9
|
-
end
|
10
|
-
|
11
|
-
after :each do
|
12
|
-
DatabaseCleaner.clean
|
13
|
-
end
|
14
|
-
|
15
6
|
it "should be able to create" do
|
16
7
|
FakeProject.create!(hoge: :foo)
|
17
8
|
end
|
data/spec/project_spec.rb
CHANGED
@@ -3,21 +3,37 @@ require_relative 'spec_helper'
|
|
3
3
|
require 'rspec'
|
4
4
|
RSpec.describe Opentie::Core::Project, :type => :model do
|
5
5
|
describe "FakeProject" do
|
6
|
-
subject(:
|
6
|
+
subject(:project) { FakeProject.new }
|
7
7
|
|
8
8
|
it 'can create instance' do
|
9
|
-
expect(
|
9
|
+
expect(project).to be_an_instance_of FakeProject
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should return available requests' do
|
13
13
|
allow(Time).to receive(:now).and_return(Time.local(2015, 5, 4, 10))
|
14
|
-
expect(
|
14
|
+
expect(project.available_requests).to match_array([TestRequest, AnotherTestRequest])
|
15
15
|
|
16
16
|
allow(Time).to receive(:now).and_return(Time.local(2015, 4, 4, 10))
|
17
|
-
expect(
|
17
|
+
expect(project.available_requests).to match_array([TestRequest])
|
18
18
|
|
19
19
|
allow(Time).to receive(:now).and_return(Time.local(2015, 5, 8, 10))
|
20
|
-
expect(
|
20
|
+
expect(project.available_requests).to match_array([AnotherTestRequest])
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should has many requests" do
|
24
|
+
project.save
|
25
|
+
expect(project.requests.length).to eq 0
|
26
|
+
|
27
|
+
project.requests << TestRequest.new
|
28
|
+
expect(project.requests.length).to eq 1
|
29
|
+
project.requests << TestRequest.new
|
30
|
+
expect(project.requests.length).to eq 2
|
31
|
+
|
32
|
+
#expect(project.save).to eq true
|
33
|
+
|
34
|
+
#binding.pry
|
35
|
+
expect(TestRequest.count).to eq 2
|
36
|
+
expect(FakeProject.first.requests.length).to eq 2
|
21
37
|
end
|
22
38
|
end
|
23
39
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,20 +1,47 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require 'bundler/setup'
|
3
3
|
require 'rspec'
|
4
|
+
require 'pry'
|
5
|
+
require 'database_cleaner'
|
6
|
+
|
4
7
|
require 'opentie/core'
|
5
|
-
require 'mongoid'
|
6
8
|
Mongoid.load!('./spec/mongoid.yml')
|
7
|
-
require 'mongoid/enum'
|
8
|
-
|
9
|
-
require 'database_cleaner'
|
10
9
|
|
11
10
|
DatabaseCleaner.strategy = :truncation
|
12
11
|
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.before :each do
|
14
|
+
DatabaseCleaner.start
|
15
|
+
end
|
16
|
+
|
17
|
+
config.after :each do
|
18
|
+
DatabaseCleaner.clean
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
13
22
|
class FakeGroup
|
14
|
-
include Mongoid::Document
|
15
|
-
include Mongoid::Enum
|
16
23
|
include Opentie::Core::Group
|
17
|
-
|
24
|
+
end
|
25
|
+
|
26
|
+
class FakeProject < FakeGroup
|
27
|
+
include Opentie::Core::Project
|
28
|
+
|
29
|
+
request_class_name_is "FakeRequest"
|
30
|
+
|
31
|
+
yes_no "is_ok", "よいか",
|
32
|
+
yes: "よい",
|
33
|
+
no: "わるい"
|
34
|
+
|
35
|
+
radio "hoge", "ほげフィールド",
|
36
|
+
description: "",
|
37
|
+
values: {
|
38
|
+
foo: "ふー",
|
39
|
+
bar: "ばー",
|
40
|
+
baz: "ばず"
|
41
|
+
}
|
42
|
+
|
43
|
+
textarea "text", "書け",
|
44
|
+
description: "オイ 書け オラ"
|
18
45
|
end
|
19
46
|
|
20
47
|
class FakeBureau < FakeGroup
|
@@ -22,12 +49,11 @@ class FakeBureau < FakeGroup
|
|
22
49
|
end
|
23
50
|
|
24
51
|
class FakeRequest
|
25
|
-
include Mongoid::Document
|
26
|
-
include Mongoid::Enum
|
27
52
|
include Opentie::Core::Request
|
28
|
-
|
53
|
+
|
54
|
+
project_class_name_is "FakeProject"
|
29
55
|
|
30
|
-
belongs_to :project, class_name:
|
56
|
+
#belongs_to :project, class_name: "FakeProject", inverse_of: :requests
|
31
57
|
end
|
32
58
|
|
33
59
|
class TestRequest < FakeRequest
|
@@ -46,26 +72,3 @@ class AnotherTestRequest < FakeRequest
|
|
46
72
|
field :another_fake_number, type: Integer
|
47
73
|
field :another_fake_hash, type: Hash
|
48
74
|
end
|
49
|
-
|
50
|
-
class FakeProject < FakeGroup
|
51
|
-
include Opentie::Core::Project
|
52
|
-
|
53
|
-
request_is FakeRequest
|
54
|
-
|
55
|
-
yes_no "is_ok", "よいか",
|
56
|
-
yes: "よい",
|
57
|
-
no: "わるい"
|
58
|
-
|
59
|
-
radio "hoge", "ほげフィールド",
|
60
|
-
description: "",
|
61
|
-
values: {
|
62
|
-
foo: "ふー",
|
63
|
-
bar: "ばー",
|
64
|
-
baz: "ばず"
|
65
|
-
}
|
66
|
-
|
67
|
-
textarea "text", "書け",
|
68
|
-
description: "オイ 書け オラ"
|
69
|
-
|
70
|
-
has_many :requests, class_name: 'FakeRequest', inverse_of: :project
|
71
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentie-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- polamjag
|
@@ -164,6 +164,62 @@ dependencies:
|
|
164
164
|
- - ! '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: pry
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: pry-byebug
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ! '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ! '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: pry-doc
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ! '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ! '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: better_errors
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ! '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
167
223
|
description:
|
168
224
|
email:
|
169
225
|
- s@polamjag.info
|
@@ -172,6 +228,7 @@ extensions: []
|
|
172
228
|
extra_rdoc_files: []
|
173
229
|
files:
|
174
230
|
- .gitignore
|
231
|
+
- .ruby-version
|
175
232
|
- .travis.yml
|
176
233
|
- Gemfile
|
177
234
|
- Guardfile
|