active_record_survey 0.1.4 → 0.1.5

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
2
  SHA1:
3
- metadata.gz: 5e14e2ac1a5afccd6174d0c4a6a6d63eaf299648
4
- data.tar.gz: 851b819031bbf4121f31003892eed93168ba0bb6
3
+ metadata.gz: 89488bc6129619788df343d2782e6e5789b63ea9
4
+ data.tar.gz: 734de7ad575ef2049f491cc289ddfc798e7f4c30
5
5
  SHA512:
6
- metadata.gz: 96cd0a3783d52e6a472229deea9782fb11b46fa8e71a24739eefab6d2be7c6fc8080531fdc01c4532600094da451b05d9e57c5f6d00dee308dc3b2a554eb6140
7
- data.tar.gz: 61fa51b61fe2e0de0e7b6fe9c0fa5f0de3fa9e1348f65d78a69e0458ee49f99c0a5f96f153bdc1916c32931826a4c35b8cc9bc9177ac8a5c3edd993a1b9e798d
6
+ metadata.gz: 5c5dd82b54caf2511537e2b3261ff0f90329241500fa4ebe3c83830486e5b3a626ae149a5d59cc9477dbb3a97cde32072f48e85258dc3ff76dd95e284b7dc424
7
+ data.tar.gz: bbd6dd35bd48ba070e2379ee38a1360fbbaf5e7e027f73c6f10607104d3b2b9886966d423e31ed9772fd84013d1f0794c5a7a504fa184fc996d58c6ed0e71d09
@@ -24,6 +24,8 @@ require "active_record_survey/node_validation/minimum_value"
24
24
  require "active_record_survey/node_validation/maximum_value"
25
25
  require "active_record_survey/node_validation/maximum_length"
26
26
  require "active_record_survey/node_validation/minimum_length"
27
+ require "active_record_survey/node_validation/minimum_answer"
28
+ require "active_record_survey/node_validation/maximum_answer"
27
29
 
28
30
  require "active_record_survey/instance"
29
31
  require "active_record_survey/instance_node"
@@ -0,0 +1,10 @@
1
+ module ActiveRecordSurvey
2
+ # Ensure the a maximum number of answers are made
3
+ class NodeValidation::MaximumAnswer < NodeValidation
4
+ # Validate the instance_node to ensure a maximum number of answers are made
5
+ def validate_instance_node(instance_node, node = nil)
6
+ !instance_node.value.to_s.empty? &&
7
+ instance_node.value.to_f >= self.value.to_f
8
+ end
9
+ end
10
+ end
@@ -3,7 +3,7 @@ module ActiveRecordSurvey
3
3
  class NodeValidation::MaximumLength < NodeValidation
4
4
  # Validate the instance_node value
5
5
  def validate_instance_node(instance_node, node = nil)
6
- instance_node.value.to_s.length <= self.value.to_i
6
+ (self.value.to_i >= instance_node.value.to_s.length.to_i)
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,10 @@
1
+ module ActiveRecordSurvey
2
+ # Ensure the a minimum number of answers are made
3
+ class NodeValidation::MinimumAnswer < NodeValidation
4
+ # Validate the instance_node to ensure a minimum number of answers are made
5
+ def validate_instance_node(instance_node, node = nil)
6
+ !instance_node.value.to_s.empty? &&
7
+ instance_node.value.to_f >= self.value.to_f
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordSurvey
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -90,5 +90,44 @@ describe ActiveRecordSurvey::Node::Answer::Boolean do
90
90
  expect(instance.valid?).to be(false)
91
91
  end
92
92
  end
93
+
94
+ describe ActiveRecordSurvey::NodeValidation::MinimumAnswer do
95
+ describe 'valid when' do
96
+ it 'has a value greater than the minimum' do
97
+ @q1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumAnswer.new(
98
+ :node => @q1,
99
+ :value => 2 # 2 of the 3 answers must be "answered"
100
+ )
101
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
102
+ instance.instance_nodes.build(
103
+ :instance => instance,
104
+ :node => @q1_a1,
105
+ :value => "this is greater than minimum length",
106
+ )
107
+ instance.save
108
+
109
+ #expect(instance.valid?).to be(true)
110
+ end
111
+ end
112
+ =begin
113
+ describe 'invalid when' do
114
+ it 'has a value less than the minimum' do
115
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumLength.new(
116
+ :node => @q1_a1,
117
+ :value => 3
118
+ )
119
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
120
+ instance.instance_nodes.build(
121
+ :instance => instance,
122
+ :node => @q1_a1,
123
+ :value => "12",
124
+ )
125
+ instance.save
126
+
127
+ expect(instance.valid?).to be(false)
128
+ end
129
+ end
130
+ =end
131
+ end
93
132
  end
94
133
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveRecordSurvey::Node::Answer::Rank, :focus => true do
3
+ describe ActiveRecordSurvey::Node::Answer::Rank do
4
4
  describe 'survey is' do
5
5
  before(:all) do
6
6
  @survey = ActiveRecordSurvey::Survey.new
@@ -52,82 +52,6 @@ describe ActiveRecordSurvey::Node::Answer::Scale do
52
52
 
53
53
  expect(instance.valid?).to be(true)
54
54
  end
55
-
56
- describe ActiveRecordSurvey::NodeValidation::MinimumValue do
57
- describe 'valid when' do
58
- it 'has a value greater than the minimum' do
59
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
60
- :node => @q1_a1,
61
- :value => 4
62
- )
63
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
64
- instance.instance_nodes.build(
65
- :instance => instance,
66
- :node => @q1_a1,
67
- :value => 5,
68
- )
69
- instance.save
70
-
71
- expect(instance.valid?).to be(true)
72
- end
73
- end
74
-
75
- describe 'invalid when' do
76
- it 'has a value less than the minimum' do
77
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
78
- :node => @q1_a1,
79
- :value => 6
80
- )
81
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
82
- instance.instance_nodes.build(
83
- :instance => instance,
84
- :node => @q1_a1,
85
- :value => 5,
86
- )
87
- instance.save
88
-
89
- expect(instance.valid?).to be(false)
90
- end
91
- end
92
- end
93
-
94
- describe ActiveRecordSurvey::NodeValidation::MaximumValue do
95
- describe 'valid when' do
96
- it 'has a value less than the maximum' do
97
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
98
- :node => @q1_a1,
99
- :value => 15
100
- )
101
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
102
- instance.instance_nodes.build(
103
- :instance => instance,
104
- :node => @q1_a1,
105
- :value => 8,
106
- )
107
- instance.save
108
-
109
- expect(instance.valid?).to be(true)
110
- end
111
- end
112
-
113
- describe 'invalid when' do
114
- it 'has a value greater than the maximum' do
115
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
116
- :node => @q1_a1,
117
- :value => 15
118
- )
119
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
120
- instance.instance_nodes.build(
121
- :instance => instance,
122
- :node => @q1_a1,
123
- :value => 20,
124
- )
125
- instance.save
126
-
127
- expect(instance.valid?).to be(false)
128
- end
129
- end
130
- end
131
55
  end
132
56
 
133
57
  describe 'invalid when' do
@@ -155,5 +79,81 @@ describe ActiveRecordSurvey::Node::Answer::Scale do
155
79
  expect(instance.valid?).to be(false)
156
80
  end
157
81
  end
82
+
83
+ describe ActiveRecordSurvey::NodeValidation::MinimumValue do
84
+ describe 'valid when' do
85
+ it 'has a value greater than the minimum' do
86
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
87
+ :node => @q1_a1,
88
+ :value => 4
89
+ )
90
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
91
+ instance.instance_nodes.build(
92
+ :instance => instance,
93
+ :node => @q1_a1,
94
+ :value => 5,
95
+ )
96
+ instance.save
97
+
98
+ expect(instance.valid?).to be(true)
99
+ end
100
+ end
101
+
102
+ describe 'invalid when' do
103
+ it 'has a value less than the minimum' do
104
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
105
+ :node => @q1_a1,
106
+ :value => 6
107
+ )
108
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
109
+ instance.instance_nodes.build(
110
+ :instance => instance,
111
+ :node => @q1_a1,
112
+ :value => 5,
113
+ )
114
+ instance.save
115
+
116
+ expect(instance.valid?).to be(false)
117
+ end
118
+ end
119
+ end
120
+
121
+ describe ActiveRecordSurvey::NodeValidation::MaximumValue do
122
+ describe 'valid when' do
123
+ it 'has a value less than the maximum' do
124
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
125
+ :node => @q1_a1,
126
+ :value => 15
127
+ )
128
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
129
+ instance.instance_nodes.build(
130
+ :instance => instance,
131
+ :node => @q1_a1,
132
+ :value => 8,
133
+ )
134
+ instance.save
135
+
136
+ expect(instance.valid?).to be(true)
137
+ end
138
+ end
139
+
140
+ describe 'invalid when' do
141
+ it 'has a value greater than the maximum' do
142
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
143
+ :node => @q1_a1,
144
+ :value => 15
145
+ )
146
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
147
+ instance.instance_nodes.build(
148
+ :instance => instance,
149
+ :node => @q1_a1,
150
+ :value => 20,
151
+ )
152
+ instance.save
153
+
154
+ expect(instance.valid?).to be(false)
155
+ end
156
+ end
157
+ end
158
158
  end
159
159
  end
@@ -0,0 +1,129 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveRecordSurvey::Node::Answer::Text, :test => true do
4
+ describe 'a text survey is' do
5
+ before(:all) do
6
+ @survey = ActiveRecordSurvey::Survey.new
7
+
8
+ @q1 = ActiveRecordSurvey::Node::Question.new(:text => "What... what do you think?")
9
+ @q1_a1 = ActiveRecordSurvey::Node::Answer::Text.new()
10
+
11
+ @survey.build_question(@q1, [@q1_a1])
12
+
13
+ @survey.save
14
+ end
15
+
16
+ describe 'valid' do
17
+ it 'when empty' do
18
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
19
+ instance.instance_nodes.build(
20
+ :instance => instance,
21
+ :node => @q1_a1,
22
+ :value => ""
23
+ )
24
+ instance.save
25
+
26
+ expect(instance.valid?).to be(true)
27
+ end
28
+
29
+ it 'when not specified' do
30
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
31
+ instance.instance_nodes.build(
32
+ :instance => instance,
33
+ :node => @q1_a1,
34
+ )
35
+ instance.save
36
+
37
+ expect(instance.valid?).to be(true)
38
+ end
39
+
40
+ it 'when has content' do
41
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
42
+ instance.instance_nodes.build(
43
+ :instance => instance,
44
+ :node => @q1_a1,
45
+ :value => "We have some content here!",
46
+ )
47
+ instance.save
48
+
49
+ expect(instance.valid?).to be(true)
50
+ end
51
+ end
52
+
53
+ describe ActiveRecordSurvey::NodeValidation::MinimumLength do
54
+ describe 'valid when' do
55
+ it 'has a value greater than the minimum' do
56
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumLength.new(
57
+ :node => @q1_a1,
58
+ :value => 3
59
+ )
60
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
61
+ instance.instance_nodes.build(
62
+ :instance => instance,
63
+ :node => @q1_a1,
64
+ :value => "this is greater than minimum length",
65
+ )
66
+ instance.save
67
+
68
+ expect(instance.valid?).to be(true)
69
+ end
70
+ end
71
+
72
+ describe 'invalid when' do
73
+ it 'has a value less than the minimum' do
74
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumLength.new(
75
+ :node => @q1_a1,
76
+ :value => 3
77
+ )
78
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
79
+ instance.instance_nodes.build(
80
+ :instance => instance,
81
+ :node => @q1_a1,
82
+ :value => "12",
83
+ )
84
+ instance.save
85
+
86
+ expect(instance.valid?).to be(false)
87
+ end
88
+ end
89
+ end
90
+
91
+ describe ActiveRecordSurvey::NodeValidation::MaximumLength do
92
+ describe 'invalid when' do
93
+ it 'has a value greater than the maximum' do
94
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumLength.new(
95
+ :node => @q1_a1,
96
+ :value => 15
97
+ )
98
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
99
+ instance.instance_nodes.build(
100
+ :instance => instance,
101
+ :node => @q1_a1,
102
+ :value => "123456789111213141516",
103
+ )
104
+ instance.save
105
+
106
+ expect(instance.valid?).to be(false)
107
+ end
108
+ end
109
+
110
+ describe 'valid when' do
111
+ it 'has a value less than the maximum' do
112
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumLength.new(
113
+ :node => @q1_a1,
114
+ :value => 15
115
+ )
116
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
117
+ instance.instance_nodes.build(
118
+ :instance => instance,
119
+ :node => @q1_a1,
120
+ :value => "test",
121
+ )
122
+ instance.save
123
+
124
+ expect(instance.valid?).to be(true)
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_survey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Butch Marshall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-24 00:00:00.000000000 Z
11
+ date: 2015-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -132,8 +132,10 @@ files:
132
132
  - lib/active_record_survey/node/question.rb
133
133
  - lib/active_record_survey/node_map.rb
134
134
  - lib/active_record_survey/node_validation.rb
135
+ - lib/active_record_survey/node_validation/maximum_answer.rb
135
136
  - lib/active_record_survey/node_validation/maximum_length.rb
136
137
  - lib/active_record_survey/node_validation/maximum_value.rb
138
+ - lib/active_record_survey/node_validation/minimum_answer.rb
137
139
  - lib/active_record_survey/node_validation/minimum_length.rb
138
140
  - lib/active_record_survey/node_validation/minimum_value.rb
139
141
  - lib/active_record_survey/survey.rb
@@ -146,6 +148,7 @@ files:
146
148
  - spec/active_record_survey/node/answer/boolean_spec.rb
147
149
  - spec/active_record_survey/node/answer/rank_spec.rb
148
150
  - spec/active_record_survey/node/answer/scale_spec.rb
151
+ - spec/active_record_survey/node/answer/text_spec.rb
149
152
  - spec/active_record_survey/survey_spec.rb
150
153
  - spec/active_record_survey_spec.rb
151
154
  - spec/spec_helper.rb
@@ -177,6 +180,7 @@ test_files:
177
180
  - spec/active_record_survey/node/answer/boolean_spec.rb
178
181
  - spec/active_record_survey/node/answer/rank_spec.rb
179
182
  - spec/active_record_survey/node/answer/scale_spec.rb
183
+ - spec/active_record_survey/node/answer/text_spec.rb
180
184
  - spec/active_record_survey/survey_spec.rb
181
185
  - spec/active_record_survey_spec.rb
182
186
  - spec/spec_helper.rb