persist_campaign 0.0.1
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 +15 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +59 -0
- data/Rakefile +6 -0
- data/lib/generators/persist_campaign/install_generator.rb +12 -0
- data/lib/generators/persist_campaign/templates/initializer.rb +4 -0
- data/lib/persist_campaign/config.rb +10 -0
- data/lib/persist_campaign/controller.rb +25 -0
- data/lib/persist_campaign/railtie.rb +9 -0
- data/lib/persist_campaign/version.rb +3 -0
- data/lib/persist_campaign.rb +15 -0
- data/persist_campaign.gemspec +28 -0
- data/spec/dummy/Gemfile +4 -0
- data/spec/dummy/app/controllers/example_controller.rb +13 -0
- data/spec/dummy/config/application.rb +15 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/generators/persist_campaign/install_generator_spec.rb +24 -0
- data/spec/persist_campaign/config_spec.rb +11 -0
- data/spec/persist_campaign/controller_spec.rb +30 -0
- data/spec/persist_campaign_spec.rb +19 -0
- data/spec/spec_helper.rb +10 -0
- metadata +157 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MDM4YWQ4N2YyY2FiY2UzZjA0ZjkyZTYyM2IxNzFkMDE4ZTY5MGI2ZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjdhMGM2YzAxYTMzMTRkYTg2NzgxMzNmYTQ4NWMwMTg4NzM5NTM0Yw==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YWJmMmEzNGMxNDhjMDJmYTJjZTc5NjcxZTVmNjhiNjhjZDI5ZThmNGIxZDUw
|
10
|
+
MWE0ZDYwOTA2NGE0NDc5MjkwOWVhZWEyYWJkYTBjOWUyNjEwYzA0MWY5OWIw
|
11
|
+
MjY3NWJlOGU4MjM0ZGRhY2IzZWZjOGJkN2M4NTYzMDE1NWI5OTE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NTJlMTkzZDgxZjAyN2UwZTZlODU4YjI2NDgzMDI0NjEwMTViZjM3MTFjNTI0
|
14
|
+
YzExNjMxYjIyMWU4NzQzNzEyMjI4ZDdmMWFmYzRmZWE4ZWJkYWIzZWQ1NTg5
|
15
|
+
OGIzY2NmYzc1ZjIxOWJiMjk1NjE4ZDc1MzVlZmQ3NmQzMmRjM2M=
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Andy Dust
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# PersistCampaign
|
2
|
+
|
3
|
+
Persist campaign parameters - such as utm_campaign, utm_source, etc - on Rails redirect_to.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
```ruby
|
9
|
+
gem 'persist_campaign'
|
10
|
+
```
|
11
|
+
|
12
|
+
And then execute:
|
13
|
+
```sh
|
14
|
+
$ bundle
|
15
|
+
```
|
16
|
+
|
17
|
+
## Default persisted keys
|
18
|
+
|
19
|
+
* utm_campaign
|
20
|
+
* utm_source
|
21
|
+
* utm_medium
|
22
|
+
* utm_content
|
23
|
+
* utm_term
|
24
|
+
* gclid (for Google Adwords)
|
25
|
+
|
26
|
+
## Configure additional keys
|
27
|
+
|
28
|
+
You can append to the key array in a configuration block. There is an install generator to create
|
29
|
+
the initializer file.
|
30
|
+
|
31
|
+
```sh
|
32
|
+
rails g persist_campaign:install
|
33
|
+
```
|
34
|
+
|
35
|
+
Edit the initializer to append other keys:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
PersistCampaign.configure do |config|
|
39
|
+
config.keys += ['foo']
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
## Testing
|
44
|
+
```sh
|
45
|
+
rake
|
46
|
+
```
|
47
|
+
|
48
|
+
## Credits
|
49
|
+
Thanks to [ndp](http://github.com/ndp)'s [save-the-campaign](http://github.com/save-the-campaign) gem for
|
50
|
+
providing the solution to patching Rail's redirect_to implemention. His solution is reproduced here under the
|
51
|
+
MIT license.
|
52
|
+
|
53
|
+
## Contributing
|
54
|
+
|
55
|
+
1. Fork it ( http://github.com/mubi/persist_campaign/fork )
|
56
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
57
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
58
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
59
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
module PersistCampaign
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
argument :name, type: :string, default: 'persist_campaign'
|
6
|
+
|
7
|
+
def create_initializer_file
|
8
|
+
template 'initializer.rb', "config/initializers/#{name}.rb"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module PersistCampaign
|
2
|
+
module Controller
|
3
|
+
def self.included base
|
4
|
+
base.send :include, InstanceMethods
|
5
|
+
base.alias_method_chain :_compute_redirect_to_location, :persist_campaign_params
|
6
|
+
end
|
7
|
+
|
8
|
+
module InstanceMethods
|
9
|
+
# Solution provided by ndp's save-the-campaign gem (http://github.com/ndp/save-the-campaign),
|
10
|
+
# reproduced here under the MIT license
|
11
|
+
def _compute_redirect_to_location_with_persist_campaign_params(options = {})
|
12
|
+
keys = PersistCampaign.config.keys.map(&:to_s)
|
13
|
+
to_persist = request.params.slice(*keys)
|
14
|
+
url = _compute_redirect_to_location_without_persist_campaign_params(options)
|
15
|
+
|
16
|
+
unless to_persist.empty?
|
17
|
+
url << (url =~ /\?/ ? '&' : '?')
|
18
|
+
url << to_persist.to_param
|
19
|
+
end
|
20
|
+
|
21
|
+
url
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'persist_campaign/version'
|
2
|
+
require 'persist_campaign/config'
|
3
|
+
require 'persist_campaign/controller'
|
4
|
+
|
5
|
+
module PersistCampaign
|
6
|
+
def self.config
|
7
|
+
@config ||= PersistCampaign::Config.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.configure(&block)
|
11
|
+
yield(config) if block_given?
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
require 'persist_campaign/railtie' if defined?(Rails)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'persist_campaign/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "persist_campaign"
|
8
|
+
spec.version = PersistCampaign::VERSION
|
9
|
+
spec.authors = ["Andy Dust"]
|
10
|
+
spec.email = ["adust@mubi.com"]
|
11
|
+
spec.summary = %q{Persist campaign parameters - such as utm_campaign, utm_source, etc - on Rails redirect_to.}
|
12
|
+
spec.description = %q{This Rails gem allows you to persist analytics parameters through redirects. By default its
|
13
|
+
persists utm_campaign, utm_source, utm_term, utm_medium, utm_content and gclid (for Google Adwords).
|
14
|
+
Additional param keys can be configured.}
|
15
|
+
spec.homepage = "http://github.com/mubi/persist_campaign"
|
16
|
+
spec.license = "MIT"
|
17
|
+
|
18
|
+
spec.files = `git ls-files -z`.split("\x0")
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_runtime_dependency 'rails', '>= 3.1.12'
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency 'rspec-rails', '~> 2.14'
|
27
|
+
spec.add_development_dependency 'generator_spec', '~> 0.9.2'
|
28
|
+
end
|
data/spec/dummy/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
class ExampleController < ActionController::Base
|
2
|
+
def foo
|
3
|
+
redirect_to controller: :example, action: :bar
|
4
|
+
end
|
5
|
+
|
6
|
+
def action_with_params
|
7
|
+
redirect_to controller: :example, action: :bar, hello: 'world'
|
8
|
+
end
|
9
|
+
|
10
|
+
def bar
|
11
|
+
render nothing: true
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "action_controller/railtie"
|
4
|
+
require "action_mailer/railtie"
|
5
|
+
|
6
|
+
Bundler.require(*Rails.groups)
|
7
|
+
|
8
|
+
module Dummy
|
9
|
+
class Application < Rails::Application
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Rails.application.configure do
|
14
|
+
config.eager_load = false
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Your secret key is used for verifying the integrity of signed cookies.
|
4
|
+
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
|
6
|
+
# Make sure the secret is at least 30 characters and all random,
|
7
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
+
# You can use `rake secret` to generate a secure secret key.
|
9
|
+
|
10
|
+
# Make sure the secrets in this file are kept private
|
11
|
+
# if you're sharing your code publicly.
|
12
|
+
|
13
|
+
development:
|
14
|
+
secret_key_base: 94eaac6bd057e82a5abb95fdff9f9828cd7660267ee3435c97ab8a3aeb621ac375003b5ff1548bc8590ec5f63ea393783e755163e9308c0b87f3c01eb5553783
|
15
|
+
|
16
|
+
test:
|
17
|
+
secret_key_base: e1d13d4b689d5ed95eb2b03236260a3dd1e6e2123f8cd2951964846f9ba004d1d25de47f897437c79f6b9e354b7a1b8400d1b0ac4b85dcb72c720964e6060792
|
18
|
+
|
19
|
+
# Do not keep production secrets in the repository,
|
20
|
+
# instead read values from the environment.
|
21
|
+
production:
|
22
|
+
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'generator_spec'
|
3
|
+
require 'generators/persist_campaign/install_generator'
|
4
|
+
|
5
|
+
describe PersistCampaign::Generators::InstallGenerator do
|
6
|
+
include GeneratorSpec::TestCase
|
7
|
+
destination File.expand_path('../tmp', File.dirname(__FILE__))
|
8
|
+
|
9
|
+
before(:all) do
|
10
|
+
prepare_destination
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'creates an initializer' do
|
14
|
+
run_generator
|
15
|
+
assert_file 'config/initializers/persist_campaign.rb'
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when a custom file name is provided as an argument' do
|
19
|
+
it 'creates an initializer with the specified file name' do
|
20
|
+
run_generator %w(foobar)
|
21
|
+
assert_file 'config/initializers/foobar.rb'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ExampleController, type: :controller do
|
4
|
+
before(:each) do
|
5
|
+
PersistCampaign.configure { |c| c.keys = %w{alpha beta} }
|
6
|
+
end
|
7
|
+
let(:params) { { alpha: '1', beta: '2' } }
|
8
|
+
|
9
|
+
it 'should persist specified params' do
|
10
|
+
get 'foo', params
|
11
|
+
expect(response).to redirect_to('/example/bar?alpha=1&beta=2')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'does not overwrite existing params' do
|
15
|
+
get 'action_with_params', params
|
16
|
+
expect(response).to redirect_to('/example/bar?hello=world&alpha=1&beta=2')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'ignores unconfigured params' do
|
20
|
+
get 'foo', params.merge(colour: 'red')
|
21
|
+
expect(response).to redirect_to('/example/bar?alpha=1&beta=2')
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'with no params to persist' do
|
25
|
+
it 'redirects normally' do
|
26
|
+
get 'foo'
|
27
|
+
expect(response).to redirect_to('/example/bar')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PersistCampaign do
|
4
|
+
it 'should be valid' do
|
5
|
+
expect(PersistCampaign).to be_a(Module)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe '.config' do
|
9
|
+
it 'returns the configuration instance' do
|
10
|
+
expect(PersistCampaign.config).to be_a(PersistCampaign::Config)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '.configure' do
|
15
|
+
it 'yields to the config instance' do
|
16
|
+
expect { |b| PersistCampaign.configure(&b) }.to yield_with_args(PersistCampaign::Config)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: persist_campaign
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andy Dust
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.1.12
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.1.12
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-rails
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.14'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.14'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: generator_spec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.9.2
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.9.2
|
83
|
+
description: ! "This Rails gem allows you to persist analytics parameters through
|
84
|
+
redirects. By default its\n persists utm_campaign, utm_source,
|
85
|
+
utm_term, utm_medium, utm_content and gclid (for Google Adwords).\n Additional
|
86
|
+
param keys can be configured."
|
87
|
+
email:
|
88
|
+
- adust@mubi.com
|
89
|
+
executables: []
|
90
|
+
extensions: []
|
91
|
+
extra_rdoc_files: []
|
92
|
+
files:
|
93
|
+
- .gitignore
|
94
|
+
- Gemfile
|
95
|
+
- LICENSE.txt
|
96
|
+
- README.md
|
97
|
+
- Rakefile
|
98
|
+
- lib/generators/persist_campaign/install_generator.rb
|
99
|
+
- lib/generators/persist_campaign/templates/initializer.rb
|
100
|
+
- lib/persist_campaign.rb
|
101
|
+
- lib/persist_campaign/config.rb
|
102
|
+
- lib/persist_campaign/controller.rb
|
103
|
+
- lib/persist_campaign/railtie.rb
|
104
|
+
- lib/persist_campaign/version.rb
|
105
|
+
- persist_campaign.gemspec
|
106
|
+
- spec/dummy/Gemfile
|
107
|
+
- spec/dummy/app/controllers/example_controller.rb
|
108
|
+
- spec/dummy/config.ru
|
109
|
+
- spec/dummy/config/application.rb
|
110
|
+
- spec/dummy/config/boot.rb
|
111
|
+
- spec/dummy/config/environment.rb
|
112
|
+
- spec/dummy/config/routes.rb
|
113
|
+
- spec/dummy/config/secrets.yml
|
114
|
+
- spec/generators/persist_campaign/install_generator_spec.rb
|
115
|
+
- spec/persist_campaign/config_spec.rb
|
116
|
+
- spec/persist_campaign/controller_spec.rb
|
117
|
+
- spec/persist_campaign_spec.rb
|
118
|
+
- spec/spec_helper.rb
|
119
|
+
homepage: http://github.com/mubi/persist_campaign
|
120
|
+
licenses:
|
121
|
+
- MIT
|
122
|
+
metadata: {}
|
123
|
+
post_install_message:
|
124
|
+
rdoc_options: []
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
requirements: []
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.2.1
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
142
|
+
summary: Persist campaign parameters - such as utm_campaign, utm_source, etc - on
|
143
|
+
Rails redirect_to.
|
144
|
+
test_files:
|
145
|
+
- spec/dummy/Gemfile
|
146
|
+
- spec/dummy/app/controllers/example_controller.rb
|
147
|
+
- spec/dummy/config.ru
|
148
|
+
- spec/dummy/config/application.rb
|
149
|
+
- spec/dummy/config/boot.rb
|
150
|
+
- spec/dummy/config/environment.rb
|
151
|
+
- spec/dummy/config/routes.rb
|
152
|
+
- spec/dummy/config/secrets.yml
|
153
|
+
- spec/generators/persist_campaign/install_generator_spec.rb
|
154
|
+
- spec/persist_campaign/config_spec.rb
|
155
|
+
- spec/persist_campaign/controller_spec.rb
|
156
|
+
- spec/persist_campaign_spec.rb
|
157
|
+
- spec/spec_helper.rb
|