formulaic 0.2.0 → 0.3.0

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: f3f0553a15b1ad6f345330ec63fac9af3cf3ad38
4
- data.tar.gz: 42736226b4009ef5906682b81623e7f26c0c010d
3
+ metadata.gz: e824316e6057f6205ce73483ffbd7f513d4a02a6
4
+ data.tar.gz: 778f34355e21e73ca38564f5163781d4ae34474f
5
5
  SHA512:
6
- metadata.gz: 2b9a4be1326dc994a344809d224bb9f39cf3051e2c0ca4eacc394ff14e98f1b300724ed42bed0a49df8fdd0bc471bd21cbf4b088218cee480be4b0092d2a5ff0
7
- data.tar.gz: 1419381234f936570a0f0678f65bbca31b5b9b4832a44ba9414d14df608e2965af62be62e6873f386927f5a8a6be57d4d33a27a6ca9687935f51e3f99ab5ad99
6
+ metadata.gz: 8dc66a2e7bca50643c48344247a6912f2f5d1645b1b4141f25af2b94042b970307417f5e7f2949d9fcd53fe3eccaa534bf5ad719de5171d8f2f996250c0526bb
7
+ data.tar.gz: cd453dffc6b4d9c381ef65d8c52119234c1b3d38adf9ce89272bc5efd4b9467ec7cc2f8341f1df8de45938f21d501b6ae86ca667d708774c5f455859a9d00bff
@@ -9,6 +9,7 @@ module Formulaic
9
9
  Array => Formulaic::Inputs::ArrayInput,
10
10
  String => Formulaic::Inputs::StringInput,
11
11
  Fixnum => Formulaic::Inputs::StringInput,
12
+ Float => Formulaic::Inputs::StringInput,
12
13
  TrueClass => Formulaic::Inputs::BooleanInput,
13
14
  FalseClass => Formulaic::Inputs::BooleanInput,
14
15
  File => Formulaic::Inputs::FileInput,
@@ -28,8 +28,17 @@ module Formulaic
28
28
  "input[type='checkbox'][name='#{label.model_name}[#{label.attribute}][]']"
29
29
  end
30
30
 
31
+ def checkbox_name_selector_for_association
32
+ "input[type='checkbox'][name='#{label.model_name}[#{label.attribute.to_s.singularize}_ids][]']"
33
+ end
34
+
31
35
  def checkbox_labels_selector
32
- "#{checkbox_name_selector} ~ label,label:has(#{checkbox_name_selector})"
36
+ [
37
+ "#{checkbox_name_selector} ~ label",
38
+ "label:has(#{checkbox_name_selector})",
39
+ "#{checkbox_name_selector_for_association} ~ label",
40
+ "label:has(#{checkbox_name_selector_for_association})",
41
+ ].join(",")
33
42
  end
34
43
  end
35
44
  end
@@ -1,3 +1,3 @@
1
1
  module Formulaic
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -117,6 +117,15 @@ describe 'Fill in user form' do
117
117
  expect(input(:user, :age).value).to eq '10'
118
118
  end
119
119
 
120
+ it 'finds an fills in a number field which is a float' do
121
+ visit 'user_form'
122
+ form = Formulaic::Form.new(:user, :new, score: 23.53)
123
+
124
+ form.fill
125
+
126
+ expect(input(:user, :score).value).to eq '23.53'
127
+ end
128
+
120
129
  it 'raises a useful error if selecting multiple from a normal select' do
121
130
  visit 'user_form'
122
131
  form = Formulaic::Form.new(:user, :new, awesome: ['Yes', 'No'])
@@ -206,4 +215,13 @@ describe 'Fill in user form' do
206
215
  expect(page.find('#event_ends_on_3i').value).to eq('31')
207
216
  end
208
217
 
218
+ it 'knows to use _ids for association fields' do
219
+ visit 'user_form'
220
+
221
+ form = Formulaic::Form.new(:user, :new, friends: ['Caleb'])
222
+
223
+ form.fill
224
+
225
+ expect(page.find('#user_friend_ids_1')).to be_checked
226
+ end
209
227
  end
@@ -7,6 +7,8 @@
7
7
  <div class="input tel required user_phone"><label class="tel required" for="user_phone"><abbr title="required">*</abbr> Phone Number</label><input class="string phone required" id="user_phone" maxlength="255" name="user[phone]" size="50" type="tel"></div>
8
8
  <div class="input integer required user_age"><label class="integer required"
9
9
  for="user_age"><abbr title="required">*</abbr> Your Age</label><input class="numeric integer age required" id="user_age" maxlength="255" name="user[age]" size="50" type="number"></div>
10
+ <div class="input decimal required user_score"><label class="decimal required"
11
+ for="user_score"><abbr title="required">*</abbr> Your Score</label><input class="numeric decimal score required" id="user_score" maxlength="255" name="user[score]" size="50" type="number"></div>
10
12
  <div class="input url required user_url"><label class="tel required" for="user_url"><abbr title="required">*</abbr> Website</label><input class="string url required" id="user_url" maxlength="255" name="user[url]" size="50" type="url"></div>
11
13
  <div class="input file optional user_avatar"><label class="file optional"
12
14
  for="user_avatar">Your Avatar</label><input class="file optional" id="user_avatar" name="user[avatar]" type="file" /></div>
@@ -43,6 +45,17 @@
43
45
  </span>
44
46
  <input name="user[dislikes][]" type="hidden" value="">
45
47
  </div>
48
+ <div class="input check_boxes optional user_friends">
49
+ <label class="check_boxes optional">Friends</label>
50
+ <span class="checkbox">
51
+ <label for="user_friend_ids_1">
52
+ <input class="check_boxes optional" type="checkbox" value="1" name="user[friend_ids][]" id="user_friend_ids_1">
53
+ Caleb
54
+ </label>
55
+ </span>
56
+ <input type="hidden" name="user[friend_ids][]" value="">
57
+ </div>
58
+
46
59
  <div class="input text required user_bio"><label class="text required"
47
60
  for="user_bio"><abbr title="required">*</abbr> Your Biography</label><textarea class="text required" cols="40" id="user_bio" name="user[bio]" rows="20" style="overflow: hidden; word-wrap: break-word; resize: horizontal; height: 464px;"></textarea></div>
48
61
  <div class="input date required user_date_of_birth">
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formulaic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-06 00:00:00.000000000 Z
11
+ date: 2015-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -174,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  version: '0'
175
175
  requirements: []
176
176
  rubyforge_project:
177
- rubygems_version: 2.4.5
177
+ rubygems_version: 2.4.6
178
178
  signing_key:
179
179
  specification_version: 4
180
180
  summary: Simplify form filling with Capybara