enju_question 0.1.0.pre5 → 0.1.0.pre6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3ec192a8b2cd54e95928a94bda7943af9b2c9c1
4
- data.tar.gz: b2a0fcf2e2fa825b998f7bbfb4d07ce6642116c8
3
+ metadata.gz: ac98a495fd5e15eebfb7fbb906fdf553318224f3
4
+ data.tar.gz: 0dd06e0911c3a478cdfbdfa1aa01a87de9672c8e
5
5
  SHA512:
6
- metadata.gz: db89bf4f4437103cda2913f9d7c78b392bfaa9c4eba748910929347bd030e9f6844a563943716660f0945b1ddc45e6ac3034d996783b945823937bb014c6dbd1
7
- data.tar.gz: 09c353e4b9f02f1f3162d28b40547e85875173230d1d00ce7a58e4eac8aac98c4a6c4125410720ca9774d3bf68513cd5a84bcece1bebc8305b39ac3bb84afdf3
6
+ metadata.gz: fa616ed9597483be2c7e47d7ba270a4a6b289c4f8650371b0e6ca4932dda26e4074c9503b1f629d3e7b577708fa06bb495d941a98060ef542ba460e68d659662
7
+ data.tar.gz: 01565cefe42e83e5a87cb5b3937ef1eec64491a3fd5f9581187c41484f7a106515f8d138aeee9bd08f6e6b01136adefc0e2c03005043f4c4de73313c17f2956b
@@ -0,0 +1,44 @@
1
+ module EnjuQuestion
2
+ class Ability
3
+ include CanCan::Ability
4
+
5
+ def initialize(user, ip_address = nil)
6
+ case user.try(:role).try(:name)
7
+ when 'Administrator'
8
+ can :manage, Answer
9
+ can :manage, Question
10
+ when 'Librarian'
11
+ can :manage, Answer
12
+ can :manage, Question
13
+ when 'User'
14
+ can [:index, :create], Answer
15
+ can :show, Answer do |answer|
16
+ if answer.user == user
17
+ true
18
+ elsif answer.question.shared
19
+ true
20
+ end
21
+ end
22
+ can [:update, :destroy], Answer do |answer|
23
+ answer.user == user
24
+ end
25
+ can [:index, :create], Question
26
+ can [:update, :destroy], Question do |question|
27
+ question.user == user
28
+ end
29
+ can :show, Question do |question|
30
+ question.user == user or question.shared
31
+ end
32
+ else
33
+ can :index, Answer
34
+ can :show, Answer do |answer|
35
+ answer.question.shared
36
+ end
37
+ can :index, Question
38
+ can :show, Question do |question|
39
+ question.shared
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,5 +1,7 @@
1
1
  require "enju_question/engine"
2
2
  require "enju_question/user"
3
+ require "enju_question/manifestation"
4
+ require "enju_question/item"
3
5
 
4
6
  module EnjuQuestion
5
7
  def self.included(base)
@@ -24,3 +26,5 @@ end
24
26
 
25
27
  ActionController::Base.send(:include, EnjuQuestion)
26
28
  ActiveRecord::Base.send :include, EnjuQuestion::QuestionUser
29
+ ActiveRecord::Base.send :include, EnjuQuestion::QuestionManifestation
30
+ ActiveRecord::Base.send :include, EnjuQuestion::QuestionItem
@@ -0,0 +1,14 @@
1
+ module EnjuQuestion
2
+ module QuestionItem
3
+ def self.included(base)
4
+ base.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def enju_question_item_model
9
+ has_many :answer_has_items, :dependent => :destroy
10
+ has_many :answers, :through => :answer_has_items
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,33 @@
1
+ module EnjuQuestion
2
+ module QuestionManifestation
3
+ def self.included(base)
4
+ base.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def enju_question_manifestation_model
9
+ include InstanceMethods
10
+ end
11
+ end
12
+
13
+ module InstanceMethods
14
+ def questions(options = {})
15
+ id = self.id
16
+ options = {:page => 1, :per_page => Question.default_per_page}.merge(options)
17
+ page = options[:page]
18
+ per_page = options[:per_page]
19
+ user = options[:user]
20
+ Question.search do
21
+ with(:manifestation_id).equal_to id
22
+ any_of do
23
+ unless user.try(:has_role?, 'Librarian')
24
+ with(:shared).equal_to true
25
+ # with(:username).equal_to user.try(:username)
26
+ end
27
+ end
28
+ paginate :page => page, :per_page => per_page
29
+ end.results
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module EnjuQuestion
2
- VERSION = "0.1.0.pre5"
2
+ VERSION = "0.1.0.pre6"
3
3
  end
@@ -1,42 +1,44 @@
1
- class Ability
2
- include CanCan::Ability
3
-
4
- def initialize(user)
5
- case user.try(:role).try(:name)
6
- when 'Administrator'
7
- can :manage, Answer
8
- can :manage, Question
9
- when 'Librarian'
10
- can :manage, Answer
11
- can :manage, Question
12
- when 'User'
13
- can [:index, :create], Answer
14
- can :show, Answer do |answer|
15
- if answer.user == user
16
- true
17
- elsif answer.question.shared
18
- true
1
+ #module EnjuQuestion
2
+ class Ability
3
+ include CanCan::Ability
4
+
5
+ def initialize(user, ip_address = nil)
6
+ case user.try(:role).try(:name)
7
+ when 'Administrator'
8
+ can :manage, Answer
9
+ can :manage, Question
10
+ when 'Librarian'
11
+ can :manage, Answer
12
+ can :manage, Question
13
+ when 'User'
14
+ can [:index, :create], Answer
15
+ can :show, Answer do |answer|
16
+ if answer.user == user
17
+ true
18
+ elsif answer.question.shared
19
+ true
20
+ end
21
+ end
22
+ can [:update, :destroy], Answer do |answer|
23
+ answer.user == user
24
+ end
25
+ can [:index, :create], Question
26
+ can [:update, :destroy], Question do |question|
27
+ question.user == user
28
+ end
29
+ can :show, Question do |question|
30
+ question.user == user or question.shared
31
+ end
32
+ else
33
+ can :index, Answer
34
+ can :show, Answer do |answer|
35
+ answer.question.shared
36
+ end
37
+ can :index, Question
38
+ can :show, Question do |question|
39
+ question.shared
19
40
  end
20
- end
21
- can [:update, :destroy], Answer do |answer|
22
- answer.user == user
23
- end
24
- can [:index, :create], Question
25
- can [:update, :destroy], Question do |question|
26
- question.user == user
27
- end
28
- can :show, Question do |question|
29
- question.user == user or question.shared
30
- end
31
- else
32
- can :index, Answer
33
- can :show, Answer do |answer|
34
- answer.question.shared
35
- end
36
- can :index, Question
37
- can :show, Question do |question|
38
- question.shared
39
41
  end
40
42
  end
41
43
  end
42
- end
44
+ #end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enju_question
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre5
4
+ version: 0.1.0.pre6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kosuke Tanabe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-04 00:00:00.000000000 Z
11
+ date: 2013-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.0.pre21
131
+ version: 0.1.0.pre23
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.0.pre21
138
+ version: 0.1.0.pre23
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: enju_ndl
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -189,6 +189,7 @@ files:
189
189
  - app/controllers/questions_controller.rb
190
190
  - app/models/answer.rb
191
191
  - app/models/answer_has_item.rb
192
+ - app/models/enju_question/ability.rb
192
193
  - app/models/question.rb
193
194
  - app/models/question_sweeper.rb
194
195
  - app/views/answers/_form.html.erb
@@ -223,6 +224,8 @@ files:
223
224
  - db/migrate/20100217054028_create_answer_has_items.rb
224
225
  - db/migrate/20120418124018_add_answer_feed_token_to_user.rb
225
226
  - lib/enju_question/engine.rb
227
+ - lib/enju_question/item.rb
228
+ - lib/enju_question/manifestation.rb
226
229
  - lib/enju_question/user.rb
227
230
  - lib/enju_question/version.rb
228
231
  - lib/enju_question.rb
@@ -367,16 +370,16 @@ files:
367
370
  - spec/dummy/solr/conf/spellings.txt
368
371
  - spec/dummy/solr/conf/stopwords.txt
369
372
  - spec/dummy/solr/conf/synonyms.txt
370
- - spec/dummy/solr/data/test/index/_3e.fdt
371
- - spec/dummy/solr/data/test/index/_3e.fdx
372
- - spec/dummy/solr/data/test/index/_3e.fnm
373
- - spec/dummy/solr/data/test/index/_3e.frq
374
- - spec/dummy/solr/data/test/index/_3e.nrm
375
- - spec/dummy/solr/data/test/index/_3e.prx
376
- - spec/dummy/solr/data/test/index/_3e.tii
377
- - spec/dummy/solr/data/test/index/_3e.tis
373
+ - spec/dummy/solr/data/test/index/_4m.fdt
374
+ - spec/dummy/solr/data/test/index/_4m.fdx
375
+ - spec/dummy/solr/data/test/index/_4m.fnm
376
+ - spec/dummy/solr/data/test/index/_4m.frq
377
+ - spec/dummy/solr/data/test/index/_4m.nrm
378
+ - spec/dummy/solr/data/test/index/_4m.prx
379
+ - spec/dummy/solr/data/test/index/_4m.tii
380
+ - spec/dummy/solr/data/test/index/_4m.tis
378
381
  - spec/dummy/solr/data/test/index/segments.gen
379
- - spec/dummy/solr/data/test/index/segments_6t
382
+ - spec/dummy/solr/data/test/index/segments_99
380
383
  - spec/dummy/solr/data/test/spellchecker/segments.gen
381
384
  - spec/dummy/solr/data/test/spellchecker/segments_1
382
385
  - spec/factories/answer.rb
@@ -555,16 +558,16 @@ test_files:
555
558
  - spec/dummy/solr/conf/spellings.txt
556
559
  - spec/dummy/solr/conf/stopwords.txt
557
560
  - spec/dummy/solr/conf/synonyms.txt
558
- - spec/dummy/solr/data/test/index/_3e.fdt
559
- - spec/dummy/solr/data/test/index/_3e.fdx
560
- - spec/dummy/solr/data/test/index/_3e.fnm
561
- - spec/dummy/solr/data/test/index/_3e.frq
562
- - spec/dummy/solr/data/test/index/_3e.nrm
563
- - spec/dummy/solr/data/test/index/_3e.prx
564
- - spec/dummy/solr/data/test/index/_3e.tii
565
- - spec/dummy/solr/data/test/index/_3e.tis
561
+ - spec/dummy/solr/data/test/index/_4m.fdt
562
+ - spec/dummy/solr/data/test/index/_4m.fdx
563
+ - spec/dummy/solr/data/test/index/_4m.fnm
564
+ - spec/dummy/solr/data/test/index/_4m.frq
565
+ - spec/dummy/solr/data/test/index/_4m.nrm
566
+ - spec/dummy/solr/data/test/index/_4m.prx
567
+ - spec/dummy/solr/data/test/index/_4m.tii
568
+ - spec/dummy/solr/data/test/index/_4m.tis
566
569
  - spec/dummy/solr/data/test/index/segments.gen
567
- - spec/dummy/solr/data/test/index/segments_6t
570
+ - spec/dummy/solr/data/test/index/segments_99
568
571
  - spec/dummy/solr/data/test/spellchecker/segments.gen
569
572
  - spec/dummy/solr/data/test/spellchecker/segments_1
570
573
  - spec/factories/answer.rb