rollout_ui 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +70 -0
- data/Rakefile +12 -0
- data/lib/rollout_ui.rb +25 -0
- data/lib/rollout_ui/engine/Rakefile +12 -0
- data/lib/rollout_ui/engine/app/assets/images/rollout_ui/dark_brick_wall.png +0 -0
- data/lib/rollout_ui/engine/app/assets/images/rollout_ui/rollout.png +0 -0
- data/lib/rollout_ui/engine/app/assets/javascripts/rollout_ui/application.js +9 -0
- data/lib/rollout_ui/engine/app/assets/stylesheets/rollout_ui/application.css +9 -0
- data/lib/rollout_ui/engine/app/assets/stylesheets/rollout_ui/layout.css +108 -0
- data/lib/rollout_ui/engine/app/controllers/rollout_ui/application_controller.rb +4 -0
- data/lib/rollout_ui/engine/app/controllers/rollout_ui/features_controller.rb +25 -0
- data/lib/rollout_ui/engine/app/helpers/rollout_ui/application_helper.rb +4 -0
- data/lib/rollout_ui/engine/app/views/layouts/rollout_ui/application.html.erb +29 -0
- data/lib/rollout_ui/engine/app/views/rollout_ui/features/_feature.html.erb +34 -0
- data/lib/rollout_ui/engine/app/views/rollout_ui/features/index.html.erb +14 -0
- data/lib/rollout_ui/engine/config/routes.rb +5 -0
- data/lib/rollout_ui/engine/lib/rollout_ui/engine.rb +5 -0
- data/lib/rollout_ui/engine/lib/tasks/rollout_ui_tasks.rake +4 -0
- data/lib/rollout_ui/engine/script/rails +6 -0
- data/lib/rollout_ui/engine/vendor/assets/images/rollout_ui/chosen-sprite.png +0 -0
- data/lib/rollout_ui/engine/vendor/assets/javascripts/chosen.jquery.js +1011 -0
- data/lib/rollout_ui/engine/vendor/assets/javascripts/jquery-ujs.js +367 -0
- data/lib/rollout_ui/engine/vendor/assets/stylesheets/chosen.css +369 -0
- data/lib/rollout_ui/engine/vendor/assets/stylesheets/normalize.css +431 -0
- data/lib/rollout_ui/feature.rb +50 -0
- data/lib/rollout_ui/monkey_patch.rb +8 -0
- data/lib/rollout_ui/server.rb +71 -0
- data/lib/rollout_ui/server/public/rollout_ui/application.css +916 -0
- data/lib/rollout_ui/server/public/rollout_ui/application.js +45 -0
- data/lib/rollout_ui/server/public/rollout_ui/chosen-sprite.png +0 -0
- data/lib/rollout_ui/server/public/rollout_ui/dark_brick_wall.png +0 -0
- data/lib/rollout_ui/server/public/rollout_ui/rollout.png +0 -0
- data/lib/rollout_ui/server/views/feature.erb +34 -0
- data/lib/rollout_ui/server/views/index.erb +5 -0
- data/lib/rollout_ui/server/views/layout.erb +32 -0
- data/lib/rollout_ui/version.rb +3 -0
- data/lib/rollout_ui/wrapper.rb +28 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +7 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +12 -0
- data/spec/dummy/config/application.rb +45 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +14 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/rollout.rb +6 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/dummy/log/development.log +15639 -0
- data/spec/dummy/log/production.log +19 -0
- data/spec/dummy/log/stdout.log +3186 -0
- data/spec/dummy/log/test.log +11115 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/C44/C60/sprockets%2F32619064c16276c9031bc469f111b6f1 +369 -0
- data/spec/dummy/tmp/cache/assets/CA9/290/sprockets%2Ffde33cd38c83e40045112ef236908326 +1012 -0
- data/spec/dummy/tmp/cache/assets/CB1/0F0/sprockets%2F097929f05538ada1621d2b34d0748fb8 +0 -0
- data/spec/dummy/tmp/cache/assets/D0C/460/sprockets%2Fbf6917215d0871b152f3d3ec4ece0486 +0 -0
- data/spec/dummy/tmp/cache/assets/D1E/9E0/sprockets%2Fb92e466db7d4e78f107d8386ea19560a +0 -0
- data/spec/dummy/tmp/cache/assets/D22/D60/sprockets%2F6c1d9d3c966b8286c00d8dd46bd54598 +371 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D3E/870/sprockets%2F82e617ed3b33c78bb8340cdbd603d189 +1015 -0
- data/spec/dummy/tmp/cache/assets/D45/1B0/sprockets%2F89743b2dcefe650c86e16c60dc248a26 +0 -0
- data/spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
- data/spec/dummy/tmp/cache/assets/D62/900/sprockets%2F4d745068b58dab09efc05fd3bd030c05 +1387 -0
- data/spec/dummy/tmp/cache/assets/D71/220/sprockets%2Fd07f8aed535b53034c9a4489bd6cb45d +374 -0
- data/spec/dummy/tmp/cache/assets/D74/0C0/sprockets%2F28c2d3c4b8de13fe5b746c94d96042dd +0 -0
- data/spec/dummy/tmp/cache/assets/D7D/C20/sprockets%2Ff5f71be7464ea98757bc8e41df514a4b +433 -0
- data/spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/spec/dummy/tmp/cache/assets/D93/100/sprockets%2Ffd9e48a89d83e7b764e2de324ee888b6 +917 -0
- data/spec/dummy/tmp/cache/assets/DC2/770/sprockets%2F7f10ac108ce75bbb0e9877b50bcb22fe +0 -0
- data/spec/dummy/tmp/cache/assets/E00/850/sprockets%2Fd5e1f4415f71da50c8365f7ecdeca2ff +436 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/E3E/230/sprockets%2F8156dcfebf95ff75b117c7e5bffb71dc +372 -0
- data/spec/dummy/tmp/cache/assets/E7A/F10/sprockets%2Ff3d71fbeaa5fdddf600a0ac52af1d8e2 +0 -0
- data/spec/dummy/tmp/capybara/capybara-201110152250496494273346.html +141 -0
- data/spec/dummy/tmp/capybara/capybara-201110152251237384633452.html +141 -0
- data/spec/dummy/tmp/capybara/capybara-201110152253073784924369.html +141 -0
- data/spec/dummy/tmp/capybara/capybara-201110152255118447806623.html +141 -0
- data/spec/dummy/tmp/capybara/capybara-201110152257286050916603.html +141 -0
- data/spec/dummy/tmp/capybara/capybara-201110152258202877532249.html +139 -0
- data/spec/dummy/tmp/capybara/capybara-201110152259224345897143.html +139 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/lib/rollout_ui/feature_spec.rb +52 -0
- data/spec/lib/rollout_ui/wrapper_spec.rb +63 -0
- data/spec/requests/engine/engine_spec.rb +95 -0
- data/spec/spec_helper.rb +22 -0
- metadata +388 -0
@@ -0,0 +1,141 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>RolloutUI</title>
|
5
|
+
<link href="/assets/rollout_ui/application.css" media="screen" rel="stylesheet" type="text/css">
|
6
|
+
<script src="/assets/rollout_ui/application.js" type="text/javascript"></script>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
|
10
|
+
<h2>Features</h2>
|
11
|
+
|
12
|
+
<div id="featureA" class="feature">
|
13
|
+
<h3>featureA</h3>
|
14
|
+
|
15
|
+
<form accept-charset="UTF-8" action="/rollout/features/featureA" method="post">
|
16
|
+
<div style="margin:0;padding:0;display:inline">
|
17
|
+
<input name="utf8" type="hidden" value="✓"><input name="_method" type="hidden" value="put">
|
18
|
+
</div>
|
19
|
+
<input type="text" name="users[]" value="">
|
20
|
+
|
21
|
+
|
22
|
+
Users: 5
|
23
|
+
|
24
|
+
<input id="users_" name="users[]" type="hidden" value="5"><select class="percentage" name="percentage"><option>0</option>
|
25
|
+
<option>1</option>
|
26
|
+
<option>2</option>
|
27
|
+
<option>3</option>
|
28
|
+
<option>4</option>
|
29
|
+
<option>5</option>
|
30
|
+
<option>6</option>
|
31
|
+
<option>7</option>
|
32
|
+
<option>8</option>
|
33
|
+
<option>9</option>
|
34
|
+
<option>10</option>
|
35
|
+
<option>11</option>
|
36
|
+
<option>12</option>
|
37
|
+
<option>13</option>
|
38
|
+
<option>14</option>
|
39
|
+
<option>15</option>
|
40
|
+
<option>16</option>
|
41
|
+
<option>17</option>
|
42
|
+
<option>18</option>
|
43
|
+
<option>19</option>
|
44
|
+
<option>20</option>
|
45
|
+
<option>21</option>
|
46
|
+
<option>22</option>
|
47
|
+
<option>23</option>
|
48
|
+
<option>24</option>
|
49
|
+
<option>25</option>
|
50
|
+
<option>26</option>
|
51
|
+
<option>27</option>
|
52
|
+
<option>28</option>
|
53
|
+
<option>29</option>
|
54
|
+
<option>30</option>
|
55
|
+
<option>31</option>
|
56
|
+
<option>32</option>
|
57
|
+
<option>33</option>
|
58
|
+
<option>34</option>
|
59
|
+
<option>35</option>
|
60
|
+
<option>36</option>
|
61
|
+
<option>37</option>
|
62
|
+
<option>38</option>
|
63
|
+
<option>39</option>
|
64
|
+
<option>40</option>
|
65
|
+
<option>41</option>
|
66
|
+
<option>42</option>
|
67
|
+
<option>43</option>
|
68
|
+
<option>44</option>
|
69
|
+
<option>45</option>
|
70
|
+
<option>46</option>
|
71
|
+
<option>47</option>
|
72
|
+
<option>48</option>
|
73
|
+
<option>49</option>
|
74
|
+
<option>50</option>
|
75
|
+
<option>51</option>
|
76
|
+
<option>52</option>
|
77
|
+
<option>53</option>
|
78
|
+
<option>54</option>
|
79
|
+
<option>55</option>
|
80
|
+
<option>56</option>
|
81
|
+
<option>57</option>
|
82
|
+
<option>58</option>
|
83
|
+
<option>59</option>
|
84
|
+
<option>60</option>
|
85
|
+
<option>61</option>
|
86
|
+
<option>62</option>
|
87
|
+
<option>63</option>
|
88
|
+
<option>64</option>
|
89
|
+
<option>65</option>
|
90
|
+
<option>66</option>
|
91
|
+
<option>67</option>
|
92
|
+
<option>68</option>
|
93
|
+
<option>69</option>
|
94
|
+
<option>70</option>
|
95
|
+
<option>71</option>
|
96
|
+
<option>72</option>
|
97
|
+
<option>73</option>
|
98
|
+
<option>74</option>
|
99
|
+
<option>75</option>
|
100
|
+
<option>76</option>
|
101
|
+
<option>77</option>
|
102
|
+
<option>78</option>
|
103
|
+
<option>79</option>
|
104
|
+
<option>80</option>
|
105
|
+
<option>81</option>
|
106
|
+
<option>82</option>
|
107
|
+
<option>83</option>
|
108
|
+
<option>84</option>
|
109
|
+
<option>85</option>
|
110
|
+
<option>86</option>
|
111
|
+
<option>87</option>
|
112
|
+
<option>88</option>
|
113
|
+
<option>89</option>
|
114
|
+
<option>90</option>
|
115
|
+
<option>91</option>
|
116
|
+
<option>92</option>
|
117
|
+
<option>93</option>
|
118
|
+
<option>94</option>
|
119
|
+
<option>95</option>
|
120
|
+
<option>96</option>
|
121
|
+
<option>97</option>
|
122
|
+
<option>98</option>
|
123
|
+
<option>99</option>
|
124
|
+
<option>100</option></select>%
|
125
|
+
|
126
|
+
<select class="groups" name="groups[]" multiple><option value="">Select a group</option>
|
127
|
+
<option>all</option></select><input type="submit" value="Save">
|
128
|
+
</form>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
|
132
|
+
<script type="text/javascript">
|
133
|
+
$(function() {
|
134
|
+
$(".add_user").click(function(e) {
|
135
|
+
e.preventDefault();
|
136
|
+
$("<input type='text' name='users[]' />").insertBefore(this);
|
137
|
+
});
|
138
|
+
});
|
139
|
+
</script>
|
140
|
+
</body>
|
141
|
+
</html>
|
@@ -0,0 +1,139 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>RolloutUI</title>
|
5
|
+
<link href="/assets/rollout_ui/application.css" media="screen" rel="stylesheet" type="text/css">
|
6
|
+
<script src="/assets/rollout_ui/application.js" type="text/javascript"></script>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
|
10
|
+
<h2>Features</h2>
|
11
|
+
|
12
|
+
<div id="featureA" class="feature">
|
13
|
+
<h3>featureA</h3>
|
14
|
+
|
15
|
+
<form accept-charset="UTF-8" action="/rollout/features/featureA" method="post">
|
16
|
+
<div style="margin:0;padding:0;display:inline">
|
17
|
+
<input name="utf8" type="hidden" value="✓"><input name="_method" type="hidden" value="put">
|
18
|
+
</div>
|
19
|
+
|
20
|
+
Users: 5
|
21
|
+
|
22
|
+
<input type="text" name="users[]" value=""><input id="users_" name="users[]" type="hidden" value="5"><select class="percentage" name="percentage"><option>0</option>
|
23
|
+
<option>1</option>
|
24
|
+
<option>2</option>
|
25
|
+
<option>3</option>
|
26
|
+
<option>4</option>
|
27
|
+
<option>5</option>
|
28
|
+
<option>6</option>
|
29
|
+
<option>7</option>
|
30
|
+
<option>8</option>
|
31
|
+
<option>9</option>
|
32
|
+
<option>10</option>
|
33
|
+
<option>11</option>
|
34
|
+
<option>12</option>
|
35
|
+
<option>13</option>
|
36
|
+
<option>14</option>
|
37
|
+
<option>15</option>
|
38
|
+
<option>16</option>
|
39
|
+
<option>17</option>
|
40
|
+
<option>18</option>
|
41
|
+
<option>19</option>
|
42
|
+
<option>20</option>
|
43
|
+
<option>21</option>
|
44
|
+
<option>22</option>
|
45
|
+
<option>23</option>
|
46
|
+
<option>24</option>
|
47
|
+
<option>25</option>
|
48
|
+
<option>26</option>
|
49
|
+
<option>27</option>
|
50
|
+
<option>28</option>
|
51
|
+
<option>29</option>
|
52
|
+
<option>30</option>
|
53
|
+
<option>31</option>
|
54
|
+
<option>32</option>
|
55
|
+
<option>33</option>
|
56
|
+
<option>34</option>
|
57
|
+
<option>35</option>
|
58
|
+
<option>36</option>
|
59
|
+
<option>37</option>
|
60
|
+
<option>38</option>
|
61
|
+
<option>39</option>
|
62
|
+
<option>40</option>
|
63
|
+
<option>41</option>
|
64
|
+
<option>42</option>
|
65
|
+
<option>43</option>
|
66
|
+
<option>44</option>
|
67
|
+
<option>45</option>
|
68
|
+
<option>46</option>
|
69
|
+
<option>47</option>
|
70
|
+
<option>48</option>
|
71
|
+
<option>49</option>
|
72
|
+
<option>50</option>
|
73
|
+
<option>51</option>
|
74
|
+
<option>52</option>
|
75
|
+
<option>53</option>
|
76
|
+
<option>54</option>
|
77
|
+
<option>55</option>
|
78
|
+
<option>56</option>
|
79
|
+
<option>57</option>
|
80
|
+
<option>58</option>
|
81
|
+
<option>59</option>
|
82
|
+
<option>60</option>
|
83
|
+
<option>61</option>
|
84
|
+
<option>62</option>
|
85
|
+
<option>63</option>
|
86
|
+
<option>64</option>
|
87
|
+
<option>65</option>
|
88
|
+
<option>66</option>
|
89
|
+
<option>67</option>
|
90
|
+
<option>68</option>
|
91
|
+
<option>69</option>
|
92
|
+
<option>70</option>
|
93
|
+
<option>71</option>
|
94
|
+
<option>72</option>
|
95
|
+
<option>73</option>
|
96
|
+
<option>74</option>
|
97
|
+
<option>75</option>
|
98
|
+
<option>76</option>
|
99
|
+
<option>77</option>
|
100
|
+
<option>78</option>
|
101
|
+
<option>79</option>
|
102
|
+
<option>80</option>
|
103
|
+
<option>81</option>
|
104
|
+
<option>82</option>
|
105
|
+
<option>83</option>
|
106
|
+
<option>84</option>
|
107
|
+
<option>85</option>
|
108
|
+
<option>86</option>
|
109
|
+
<option>87</option>
|
110
|
+
<option>88</option>
|
111
|
+
<option>89</option>
|
112
|
+
<option>90</option>
|
113
|
+
<option>91</option>
|
114
|
+
<option>92</option>
|
115
|
+
<option>93</option>
|
116
|
+
<option>94</option>
|
117
|
+
<option>95</option>
|
118
|
+
<option>96</option>
|
119
|
+
<option>97</option>
|
120
|
+
<option>98</option>
|
121
|
+
<option>99</option>
|
122
|
+
<option>100</option></select>%
|
123
|
+
|
124
|
+
<select class="groups" name="groups[]" multiple><option value="">Select a group</option>
|
125
|
+
<option>all</option></select><input type="submit" value="Save">
|
126
|
+
</form>
|
127
|
+
</div>
|
128
|
+
|
129
|
+
|
130
|
+
<script type="text/javascript">
|
131
|
+
$(function() {
|
132
|
+
$(".add_user").click(function(e) {
|
133
|
+
e.preventDefault();
|
134
|
+
$("<input type='text' name='users[]' />").insertBefore(this);
|
135
|
+
});
|
136
|
+
});
|
137
|
+
</script>
|
138
|
+
</body>
|
139
|
+
</html>
|
@@ -0,0 +1,139 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>RolloutUI</title>
|
5
|
+
<link href="/assets/rollout_ui/application.css" media="screen" rel="stylesheet" type="text/css">
|
6
|
+
<script src="/assets/rollout_ui/application.js" type="text/javascript"></script>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
|
10
|
+
<h2>Features</h2>
|
11
|
+
|
12
|
+
<div id="featureA" class="feature">
|
13
|
+
<h3>featureA</h3>
|
14
|
+
|
15
|
+
<form accept-charset="UTF-8" action="/rollout/features/featureA" method="post">
|
16
|
+
<div style="margin:0;padding:0;display:inline">
|
17
|
+
<input name="utf8" type="hidden" value="✓"><input name="_method" type="hidden" value="put">
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<input type="text" name="users[]" value=""><div id="user_ids">5</div>
|
21
|
+
|
22
|
+
<input id="users_" name="users[]" type="hidden" value="5"><select class="percentage" name="percentage"><option>0</option>
|
23
|
+
<option>1</option>
|
24
|
+
<option>2</option>
|
25
|
+
<option>3</option>
|
26
|
+
<option>4</option>
|
27
|
+
<option>5</option>
|
28
|
+
<option>6</option>
|
29
|
+
<option>7</option>
|
30
|
+
<option>8</option>
|
31
|
+
<option>9</option>
|
32
|
+
<option>10</option>
|
33
|
+
<option>11</option>
|
34
|
+
<option>12</option>
|
35
|
+
<option>13</option>
|
36
|
+
<option>14</option>
|
37
|
+
<option>15</option>
|
38
|
+
<option>16</option>
|
39
|
+
<option>17</option>
|
40
|
+
<option>18</option>
|
41
|
+
<option>19</option>
|
42
|
+
<option>20</option>
|
43
|
+
<option>21</option>
|
44
|
+
<option>22</option>
|
45
|
+
<option>23</option>
|
46
|
+
<option>24</option>
|
47
|
+
<option>25</option>
|
48
|
+
<option>26</option>
|
49
|
+
<option>27</option>
|
50
|
+
<option>28</option>
|
51
|
+
<option>29</option>
|
52
|
+
<option>30</option>
|
53
|
+
<option>31</option>
|
54
|
+
<option>32</option>
|
55
|
+
<option>33</option>
|
56
|
+
<option>34</option>
|
57
|
+
<option>35</option>
|
58
|
+
<option>36</option>
|
59
|
+
<option>37</option>
|
60
|
+
<option>38</option>
|
61
|
+
<option>39</option>
|
62
|
+
<option>40</option>
|
63
|
+
<option>41</option>
|
64
|
+
<option>42</option>
|
65
|
+
<option>43</option>
|
66
|
+
<option>44</option>
|
67
|
+
<option>45</option>
|
68
|
+
<option>46</option>
|
69
|
+
<option>47</option>
|
70
|
+
<option>48</option>
|
71
|
+
<option>49</option>
|
72
|
+
<option>50</option>
|
73
|
+
<option>51</option>
|
74
|
+
<option>52</option>
|
75
|
+
<option>53</option>
|
76
|
+
<option>54</option>
|
77
|
+
<option>55</option>
|
78
|
+
<option>56</option>
|
79
|
+
<option>57</option>
|
80
|
+
<option>58</option>
|
81
|
+
<option>59</option>
|
82
|
+
<option>60</option>
|
83
|
+
<option>61</option>
|
84
|
+
<option>62</option>
|
85
|
+
<option>63</option>
|
86
|
+
<option>64</option>
|
87
|
+
<option>65</option>
|
88
|
+
<option>66</option>
|
89
|
+
<option>67</option>
|
90
|
+
<option>68</option>
|
91
|
+
<option>69</option>
|
92
|
+
<option>70</option>
|
93
|
+
<option>71</option>
|
94
|
+
<option>72</option>
|
95
|
+
<option>73</option>
|
96
|
+
<option>74</option>
|
97
|
+
<option>75</option>
|
98
|
+
<option>76</option>
|
99
|
+
<option>77</option>
|
100
|
+
<option>78</option>
|
101
|
+
<option>79</option>
|
102
|
+
<option>80</option>
|
103
|
+
<option>81</option>
|
104
|
+
<option>82</option>
|
105
|
+
<option>83</option>
|
106
|
+
<option>84</option>
|
107
|
+
<option>85</option>
|
108
|
+
<option>86</option>
|
109
|
+
<option>87</option>
|
110
|
+
<option>88</option>
|
111
|
+
<option>89</option>
|
112
|
+
<option>90</option>
|
113
|
+
<option>91</option>
|
114
|
+
<option>92</option>
|
115
|
+
<option>93</option>
|
116
|
+
<option>94</option>
|
117
|
+
<option>95</option>
|
118
|
+
<option>96</option>
|
119
|
+
<option>97</option>
|
120
|
+
<option>98</option>
|
121
|
+
<option>99</option>
|
122
|
+
<option>100</option></select>%
|
123
|
+
|
124
|
+
<select class="groups" name="groups[]" multiple><option value="">Select a group</option>
|
125
|
+
<option>all</option></select><input type="submit" value="Save">
|
126
|
+
</form>
|
127
|
+
</div>
|
128
|
+
|
129
|
+
|
130
|
+
<script type="text/javascript">
|
131
|
+
$(function() {
|
132
|
+
$(".add_user").click(function(e) {
|
133
|
+
e.preventDefault();
|
134
|
+
$("<input type='text' name='users[]' />").insertBefore(this);
|
135
|
+
});
|
136
|
+
});
|
137
|
+
</script>
|
138
|
+
</body>
|
139
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
13657
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RolloutUi::Feature do
|
4
|
+
before do
|
5
|
+
# Request a feature to prime RolloutUi::Wrapper rollout instance
|
6
|
+
$rollout.active?(:featureA, mock(:user, :id => 5))
|
7
|
+
|
8
|
+
@feature = RolloutUi::Feature.new(:featureA)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#percentage" do
|
12
|
+
it "returns the activated percentage for the feature" do
|
13
|
+
$rollout.activate_percentage(:featureA, 75)
|
14
|
+
@feature.percentage.should == "75"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#percentage=" do
|
19
|
+
it "sets the activated percentage for the feature" do
|
20
|
+
@feature.percentage = 90
|
21
|
+
RolloutUi::Feature.new(:featureA).percentage.should == "90"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#groups" do
|
26
|
+
it "returns the activated groups for the feature" do
|
27
|
+
$rollout.activate_group(:featureA, :beta_testers)
|
28
|
+
@feature.groups.should == ["beta_testers"]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#groups=" do
|
33
|
+
it "sets the activated groups for the feature" do
|
34
|
+
@feature.groups = ["all", "admins"]
|
35
|
+
RolloutUi::Feature.new(:featureA).groups.should == ["admins", "all"]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#users" do
|
40
|
+
it "returns the activated users for the feature" do
|
41
|
+
$rollout.activate_user(:featureA, mock(:user, :id => 5))
|
42
|
+
@feature.user_ids.should == ["5"]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#users=" do
|
47
|
+
it "sets the activated users for the feature" do
|
48
|
+
@feature.user_ids = [5, "7", ""]
|
49
|
+
RolloutUi::Feature.new(:featureA).user_ids.should == ["5", "7"]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|