split 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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