split 1.3.2 → 1.4.0

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +7 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/README.md +1 -2
  6. data/lib/split.rb +1 -0
  7. data/lib/split/algorithms.rb +2 -1
  8. data/lib/split/algorithms/weighted_sample.rb +2 -1
  9. data/lib/split/algorithms/whiplash.rb +1 -0
  10. data/lib/split/alternative.rb +1 -0
  11. data/lib/split/configuration.rb +1 -0
  12. data/lib/split/dashboard.rb +1 -0
  13. data/lib/split/dashboard/helpers.rb +1 -0
  14. data/lib/split/dashboard/public/dashboard-filtering.js +43 -0
  15. data/lib/split/dashboard/public/style.css +4 -0
  16. data/lib/split/dashboard/views/_experiment.erb +1 -1
  17. data/lib/split/dashboard/views/index.erb +6 -1
  18. data/lib/split/dashboard/views/layout.erb +2 -1
  19. data/lib/split/encapsulated_helper.rb +1 -0
  20. data/lib/split/engine.rb +1 -0
  21. data/lib/split/exceptions.rb +1 -0
  22. data/lib/split/experiment.rb +1 -0
  23. data/lib/split/experiment_catalog.rb +1 -0
  24. data/lib/split/extensions.rb +2 -1
  25. data/lib/split/extensions/array.rb +2 -1
  26. data/lib/split/extensions/string.rb +2 -1
  27. data/lib/split/helper.rb +1 -0
  28. data/lib/split/metric.rb +1 -0
  29. data/lib/split/persistence.rb +1 -0
  30. data/lib/split/persistence/cookie_adapter.rb +1 -0
  31. data/lib/split/persistence/redis_adapter.rb +1 -0
  32. data/lib/split/persistence/session_adapter.rb +2 -1
  33. data/lib/split/trial.rb +1 -0
  34. data/lib/split/version.rb +3 -2
  35. data/lib/split/zscore.rb +1 -0
  36. data/spec/algorithms/weighted_sample_spec.rb +1 -0
  37. data/spec/algorithms/whiplash_spec.rb +1 -0
  38. data/spec/alternative_spec.rb +1 -0
  39. data/spec/configuration_spec.rb +1 -0
  40. data/spec/dashboard_helpers_spec.rb +1 -0
  41. data/spec/dashboard_spec.rb +1 -0
  42. data/spec/encapsulated_helper_spec.rb +1 -0
  43. data/spec/experiment_catalog_spec.rb +1 -0
  44. data/spec/experiment_spec.rb +1 -0
  45. data/spec/helper_spec.rb +2 -1
  46. data/spec/metric_spec.rb +1 -0
  47. data/spec/persistence/cookie_adapter_spec.rb +1 -0
  48. data/spec/persistence/redis_adapter_spec.rb +1 -0
  49. data/spec/persistence/session_adapter_spec.rb +1 -0
  50. data/spec/persistence_spec.rb +1 -0
  51. data/spec/spec_helper.rb +1 -0
  52. data/spec/support/cookies_mock.rb +2 -1
  53. data/spec/trial_spec.rb +1 -0
  54. data/split.gemspec +1 -1
  55. metadata +6 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91c3eb51951c16c9e8e486a3ae93ec0c277d3e1b
4
- data.tar.gz: 19f62b612e02dfcd34c2bee94a5332a742f2864d
3
+ metadata.gz: d5ce44cc3d861186dd8d1acce66eea15acb2f5af
4
+ data.tar.gz: 85bd7d57f7e56d0c4ac06ab8eecfbce40ec96060
5
5
  SHA512:
6
- metadata.gz: 0ff2e3af704c2169f6aa7714b6d9eff0d9fc52e2297caffa7312cc50ae43065bf4b73f9d2ad284ee4b55515ef970df00ed16e4c403eabf90d7b3aa57c26c8dab
7
- data.tar.gz: 4c94d4e88dd4f18aef4ca10db437d25720acd9d82fa3718cecd11037863ea0d7515676973f6b49d87cf3e126d09c2595de18ae08e70790930bc1c38a63bad686
6
+ metadata.gz: 9aa91bd0caab6c179b0393bb25f075efa1782bee1ce6cc238b470dac58d76b9819d0e5534e18a68e872ee88d81f01f6fba9ac97e89bc0ede5add5dc00b5a16a6
7
+ data.tar.gz: 2aca58592f7a381482dbcfaec0ba8b490ccb2f032ad68a3e4a495a8dd56a26a337066929954380188da53fef7a21b21520a0601adb5a7125b3f62aae6dcc9340
data/.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.4
3
+ - 2.3.0
4
4
 
5
5
  gemfile:
6
6
  - gemfiles/4.1.gemfile
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.4.0 (April 2nd, 2016)
2
+
3
+ Features:
4
+
5
+ - Added experiment filters to dashboard (@ccallebs, #363, #364)
6
+ - Added Contributor Covenant Code of Conduct
7
+
1
8
  ## 1.3.2 (January 2nd, 2016)
2
9
 
3
10
  Bugfixes:
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at andrewnez@gmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/README.md CHANGED
@@ -8,7 +8,6 @@ Split is designed to be hacker friendly, allowing for maximum customisation and
8
8
 
9
9
  [![Gem Version](https://badge.fury.io/rb/split.svg)](http://badge.fury.io/rb/split)
10
10
  [![Build Status](https://secure.travis-ci.org/splitrb/split.svg?branch=master)](http://travis-ci.org/splitrb/split)
11
- [![Dependency Status](https://gemnasium.com/splitrb/split.svg)](https://gemnasium.com/splitrb/split)
12
11
  [![Code Climate](https://codeclimate.com/github/splitrb/split.svg)](https://codeclimate.com/github/splitrb/split)
13
12
  [![Coverage Status](http://img.shields.io/coveralls/splitrb/split.svg)](https://coveralls.io/r/splitrb/split)
14
13
 
@@ -37,7 +36,7 @@ gem install split
37
36
 
38
37
  ### Rails
39
38
 
40
- Adding `gem 'split'` to your Gemfile will autoloaded it when rails starts up, as long as you've configured redis it will 'just work'.
39
+ Adding `gem 'split'` to your Gemfile will autoload it when rails starts up, as long as you've configured redis it will 'just work'.
41
40
 
42
41
  ### Sinatra
43
42
 
data/lib/split.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  %w[algorithms
2
3
  alternative
3
4
  configuration
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  %w[weighted_sample whiplash].each do |f|
2
3
  require "split/algorithms/#{f}"
3
- end
4
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module Algorithms
3
4
  module WeightedSample
@@ -14,4 +15,4 @@ module Split
14
15
  end
15
16
  end
16
17
  end
17
- end
18
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # A multi-armed bandit implementation inspired by
2
3
  # @aaronsw and victorykit/whiplash
3
4
  require 'simple-random'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'split/zscore'
2
3
 
3
4
  # TODO - take out require and implement using file paths?
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class Configuration
3
4
  attr_accessor :bots
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'sinatra/base'
2
3
  require 'split'
3
4
  require 'bigdecimal'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module DashboardHelpers
3
4
  def h(text)
@@ -0,0 +1,43 @@
1
+ $(function() {
2
+ $('#filter').on('keyup', function() {
3
+ $input = $(this);
4
+
5
+ if ($input.val() == '') {
6
+ $('div.experiment').show();
7
+ return false;
8
+ }
9
+
10
+ $('div.experiment').hide();
11
+ selector = 'div.experiment[data-name*="' + $input.val() + '"]';
12
+ $(selector).show();
13
+ });
14
+
15
+ $('#clear-filter').on('click', function() {
16
+ $('#filter').val('');
17
+ $('div.experiment').show();
18
+ $('#toggle-active').val('Hide active');
19
+ $('#toggle-completed').val('Hide completed');
20
+ });
21
+
22
+ $('#toggle-active').on('click', function() {
23
+ $button = $(this);
24
+ if ($button.val() == 'Hide active') {
25
+ $button.val('Show active');
26
+ } else {
27
+ $button.val('Hide active');
28
+ }
29
+
30
+ $('div.experiment[data-complete="false"]').toggle();
31
+ });
32
+
33
+ $('#toggle-completed').on('click', function() {
34
+ $button = $(this);
35
+ if ($button.val() == 'Hide completed') {
36
+ $button.val('Show completed');
37
+ } else {
38
+ $button.val('Hide completed');
39
+ }
40
+
41
+ $('div.experiment[data-complete="true"]').toggle();
42
+ });
43
+ });
@@ -312,4 +312,8 @@ a.button.green:focus, button.green:focus, input[type="submit"].green:focus {
312
312
  background:#768E7A;
313
313
  }
314
314
 
315
+ #filter, #clear-filter {
316
+ padding: 10px;
317
+ }
318
+
315
319
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  <% experiment.calc_winning_alternatives %>
8
8
 
9
- <div class="<%= experiment_class %>">
9
+ <div class="<%= experiment_class %>" data-name="<%= experiment.name %>" data-complete="<%= experiment.has_winner? %>">
10
10
  <div class="experiment-header">
11
11
  <h2>
12
12
  Experiment: <%= experiment.name %>
@@ -1,6 +1,11 @@
1
1
  <% if @experiments.any? %>
2
2
  <p class="intro">The list below contains all the registered experiments along with the number of test participants, completed and conversion rate currently in the system.</p>
3
3
 
4
+ <input type="text" placeholder="Begin typing to filter" id="filter" />
5
+ <input type="button" id="toggle-completed" value="Hide completed" />
6
+ <input type="button" id="toggle-active" value="Hide active" />
7
+ <input type="button" id="clear-filter" value="Clear filters" />
8
+
4
9
  <% @experiments.each do |experiment| %>
5
10
  <% if experiment.goals.empty? %>
6
11
  <%= erb :_experiment, :locals => {:goal => nil, :experiment => experiment} %>
@@ -14,4 +19,4 @@
14
19
  <% else %>
15
20
  <p class="intro">No experiments have started yet, you need to define them in your code and introduce them to your users.</p>
16
21
  <p class="intro">Check out the <a href='https://github.com/splitrb/split#readme'>Readme</a> for more help getting started.</p>
17
- <% end %>
22
+ <% end %>
@@ -6,6 +6,7 @@
6
6
  <link href="<%= url 'style.css' %>" media="screen" rel="stylesheet" type="text/css">
7
7
  <script type="text/javascript" src='<%= url 'dashboard.js' %>'></script>
8
8
  <script type="text/javascript" src='<%= url 'jquery-1.11.1.min.js' %>'></script>
9
+ <script type="text/javascript" src='<%= url 'dashboard-filtering.js' %>'></script>
9
10
  <title>Split</title>
10
11
 
11
12
  </head>
@@ -23,4 +24,4 @@
23
24
  <p>Powered by <a href="http://github.com/splitrb/split">Split</a> v<%=Split::VERSION %></p>
24
25
  </div>
25
26
  </body>
26
- </html>
27
+ </html>
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Split's helper exposes all kinds of methods we don't want to
2
3
  # mix into our model classes.
3
4
  #
data/lib/split/engine.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class Engine < ::Rails::Engine
3
4
  initializer "split" do |app|
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class InvalidPersistenceAdapterError < StandardError; end
3
4
  class ExperimentNotFound < StandardError; end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class Experiment
3
4
  attr_accessor :name
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class ExperimentCatalog
3
4
  # Return all experiments
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  %w[array string].each do |f|
2
3
  require "split/extensions/#{f}"
3
- end
4
+ end
@@ -1,4 +1,5 @@
1
+ # frozen_string_literal: true
1
2
  class Array
2
3
  # maintain backwards compatibility with 1.8.7
3
4
  alias_method :sample, :choice unless method_defined?(:sample)
4
- end
5
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class String
2
3
  # Constatntize is often provided by ActiveSupport, but ActiveSupport is not a dependency of Split.
3
4
  unless method_defined?(:constantize)
@@ -12,4 +13,4 @@ class String
12
13
  constant
13
14
  end
14
15
  end
15
- end
16
+ end
data/lib/split/helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module Helper
3
4
  module_function
data/lib/split/metric.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class Metric
3
4
  attr_accessor :name
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  %w[session_adapter cookie_adapter redis_adapter].each do |f|
2
3
  require "split/persistence/#{f}"
3
4
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "json"
2
3
 
3
4
  module Split
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module Persistence
3
4
  class RedisAdapter
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module Persistence
3
4
  class SessionAdapter
@@ -25,4 +26,4 @@ module Split
25
26
 
26
27
  end
27
28
  end
28
- end
29
+ end
data/lib/split/trial.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  class Trial
3
4
  attr_accessor :experiment
data/lib/split/version.rb CHANGED
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  MAJOR = 1
3
- MINOR = 3
4
- PATCH = 2
4
+ MINOR = 4
5
+ PATCH = 0
5
6
  VERSION = [MAJOR, MINOR, PATCH].join('.')
6
7
  end
data/lib/split/zscore.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Split
2
3
  module Zscore
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Algorithms::WeightedSample do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Algorithms::Whiplash do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'split/alternative'
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Split::Configuration do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'split/dashboard/helpers'
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'rack/test'
3
4
  require 'split/dashboard'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Split::EncapsulatedHelper do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Split::ExperimentCatalog do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'split/experiment'
3
4
  require 'split/algorithms'
data/spec/helper_spec.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
4
  # TODO change some of these tests to use Rack::Test
@@ -916,7 +917,7 @@ describe Split::Helper do
916
917
 
917
918
  it "fails gracefully if config is missing alternatives" do
918
919
  Split.configuration.experiments[:my_experiment] = { :foo => "Bar" }
919
- expect(lambda { ab_test :my_experiment }).to raise_error
920
+ expect(lambda { ab_test :my_experiment }).to raise_error(NoMethodError)
920
921
  end
921
922
  end
922
923
 
data/spec/metric_spec.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'split/metric'
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Persistence::CookieAdapter do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Persistence::RedisAdapter do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Persistence::SessionAdapter do
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "spec_helper"
2
3
 
3
4
  describe Split::Persistence do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ENV['RACK_ENV'] = "test"
2
3
 
3
4
  require 'rubygems'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class CookiesMock
2
3
 
3
4
  def initialize
@@ -16,4 +17,4 @@ class CookiesMock
16
17
  @cookies.delete(key)
17
18
  end
18
19
 
19
- end
20
+ end
data/spec/trial_spec.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
  require 'split/trial'
3
4
 
data/split.gemspec CHANGED
@@ -28,6 +28,6 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'bundler', '~> 1.10'
29
29
  s.add_development_dependency 'coveralls', '~> 0.8'
30
30
  s.add_development_dependency 'rack-test', '~> 0.6'
31
- s.add_development_dependency 'rake', '~> 10.4'
31
+ s.add_development_dependency 'rake', '~> 11.1'
32
32
  s.add_development_dependency 'rspec', '~> 3.4'
33
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: split
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-02 00:00:00.000000000 Z
11
+ date: 2016-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '10.4'
117
+ version: '11.1'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '10.4'
124
+ version: '11.1'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -147,6 +147,7 @@ files:
147
147
  - ".travis.yml"
148
148
  - Appraisals
149
149
  - CHANGELOG.md
150
+ - CODE_OF_CONDUCT.md
150
151
  - CONTRIBUTING.md
151
152
  - Gemfile
152
153
  - LICENSE
@@ -162,6 +163,7 @@ files:
162
163
  - lib/split/configuration.rb
163
164
  - lib/split/dashboard.rb
164
165
  - lib/split/dashboard/helpers.rb
166
+ - lib/split/dashboard/public/dashboard-filtering.js
165
167
  - lib/split/dashboard/public/dashboard.js
166
168
  - lib/split/dashboard/public/jquery-1.11.1.min.js
167
169
  - lib/split/dashboard/public/reset.css