togglify 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/.rspec +2 -0
  2. data/.ruby-version +1 -0
  3. data/Gemfile +19 -0
  4. data/Gemfile.lock +78 -0
  5. data/Guardfile +8 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +50 -0
  8. data/Rakefile +49 -0
  9. data/VERSION +1 -0
  10. data/benchmark.org +9 -0
  11. data/lib/tasks/togglify.rake +13 -0
  12. data/lib/togglify/railtie.rb +13 -0
  13. data/lib/togglify/storage.rb +47 -0
  14. data/lib/togglify.rb +45 -0
  15. data/spec/dummy/.gitignore +15 -0
  16. data/spec/dummy/.rspec +2 -0
  17. data/spec/dummy/.togglify +0 -0
  18. data/spec/dummy/Gemfile +23 -0
  19. data/spec/dummy/Gemfile.lock +139 -0
  20. data/spec/dummy/README.rdoc +261 -0
  21. data/spec/dummy/Rakefile +7 -0
  22. data/spec/dummy/app/assets/images/rails.png +0 -0
  23. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  24. data/spec/dummy/app/assets/javascripts/welcome.js.coffee +3 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  26. data/spec/dummy/app/assets/stylesheets/welcome.css.scss +3 -0
  27. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  28. data/spec/dummy/app/controllers/welcome_controller.rb +14 -0
  29. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  30. data/spec/dummy/app/helpers/welcome_helper.rb +2 -0
  31. data/spec/dummy/app/mailers/.gitkeep +0 -0
  32. data/spec/dummy/app/models/.gitkeep +0 -0
  33. data/spec/dummy/app/models/toggle_test.rb +7 -0
  34. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  35. data/spec/dummy/app/views/welcome/index.html.haml +17 -0
  36. data/spec/dummy/config/application.rb +62 -0
  37. data/spec/dummy/config/boot.rb +6 -0
  38. data/spec/dummy/config/database.yml +25 -0
  39. data/spec/dummy/config/environment.rb +5 -0
  40. data/spec/dummy/config/environments/development.rb +37 -0
  41. data/spec/dummy/config/environments/production.rb +67 -0
  42. data/spec/dummy/config/environments/test.rb +37 -0
  43. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  44. data/spec/dummy/config/initializers/inflections.rb +15 -0
  45. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  46. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  47. data/spec/dummy/config/initializers/session_store.rb +8 -0
  48. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  49. data/spec/dummy/config/locales/en.yml +5 -0
  50. data/spec/dummy/config/routes.rb +8 -0
  51. data/spec/dummy/config.ru +4 -0
  52. data/spec/dummy/db/seeds.rb +7 -0
  53. data/spec/dummy/lib/assets/.gitkeep +0 -0
  54. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  55. data/spec/dummy/log/.gitkeep +0 -0
  56. data/spec/dummy/public/404.html +26 -0
  57. data/spec/dummy/public/422.html +26 -0
  58. data/spec/dummy/public/500.html +25 -0
  59. data/spec/dummy/public/favicon.ico +0 -0
  60. data/spec/dummy/public/robots.txt +5 -0
  61. data/spec/dummy/script/rails +6 -0
  62. data/spec/dummy/spec/models/toggle_test_spec.rb +23 -0
  63. data/spec/dummy/spec/spec_helper.rb +37 -0
  64. data/spec/dummy/test/fixtures/.gitkeep +0 -0
  65. data/spec/dummy/test/functional/.gitkeep +0 -0
  66. data/spec/dummy/test/functional/welcome_controller_test.rb +9 -0
  67. data/spec/dummy/test/integration/.gitkeep +0 -0
  68. data/spec/dummy/test/performance/browsing_test.rb +12 -0
  69. data/spec/dummy/test/test_helper.rb +13 -0
  70. data/spec/dummy/test/unit/.gitkeep +0 -0
  71. data/spec/dummy/test/unit/helpers/welcome_helper_test.rb +4 -0
  72. data/spec/dummy/vendor/assets/javascripts/.gitkeep +0 -0
  73. data/spec/dummy/vendor/assets/stylesheets/.gitkeep +0 -0
  74. data/spec/dummy/vendor/plugins/.gitkeep +0 -0
  75. data/spec/lib/togglify/storage_spec.rb +86 -0
  76. data/spec/lib/togglify_spec.rb +70 -0
  77. data/spec/spec_helper.rb +30 -0
  78. data/spec/support/.togglify +0 -0
  79. data/togglify.gemspec +145 -0
  80. metadata +290 -0
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format Fuubar
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p194@togglify
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rspec", "~> 2.11.0"
10
+ gem "pry-debugger"
11
+ gem "guard-rspec"
12
+ gem "fuubar"
13
+ gem "rb-fsevent"
14
+ gem "rb-inotify"
15
+ gem "rdoc", "~> 3.12"
16
+ gem "bundler", "~> 1.2.1"
17
+ gem "jeweler", "~> 1.8.4"
18
+ gem "simplecov", ">= 0"
19
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,78 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ coderay (1.0.8)
5
+ columnize (0.3.6)
6
+ debugger (1.1.4)
7
+ columnize (>= 0.3.1)
8
+ debugger-linecache (~> 1.1.1)
9
+ debugger-ruby_core_source (~> 1.1.3)
10
+ debugger-linecache (1.1.2)
11
+ debugger-ruby_core_source (>= 1.1.1)
12
+ debugger-ruby_core_source (1.1.4)
13
+ diff-lcs (1.1.3)
14
+ ffi (1.1.5)
15
+ fuubar (1.1.0)
16
+ rspec (~> 2.0)
17
+ rspec-instafail (~> 0.2.0)
18
+ ruby-progressbar (~> 1.0.0)
19
+ git (1.2.5)
20
+ guard (1.4.0)
21
+ listen (>= 0.4.2)
22
+ thor (>= 0.14.6)
23
+ guard-rspec (2.1.0)
24
+ guard (>= 1.1)
25
+ rspec (~> 2.11)
26
+ jeweler (1.8.4)
27
+ bundler (~> 1.0)
28
+ git (>= 1.2.5)
29
+ rake
30
+ rdoc
31
+ json (1.7.5)
32
+ listen (0.5.3)
33
+ method_source (0.8.1)
34
+ multi_json (1.3.6)
35
+ pry (0.9.10)
36
+ coderay (~> 1.0.5)
37
+ method_source (~> 0.8)
38
+ slop (~> 3.3.1)
39
+ pry-debugger (0.2.0)
40
+ debugger (~> 1.1.3)
41
+ pry (~> 0.9.9)
42
+ rake (0.9.2.2)
43
+ rb-fsevent (0.9.2)
44
+ rb-inotify (0.8.8)
45
+ ffi (>= 0.5.0)
46
+ rdoc (3.12)
47
+ json (~> 1.4)
48
+ rspec (2.11.0)
49
+ rspec-core (~> 2.11.0)
50
+ rspec-expectations (~> 2.11.0)
51
+ rspec-mocks (~> 2.11.0)
52
+ rspec-core (2.11.1)
53
+ rspec-expectations (2.11.3)
54
+ diff-lcs (~> 1.1.3)
55
+ rspec-instafail (0.2.4)
56
+ rspec-mocks (2.11.3)
57
+ ruby-progressbar (1.0.2)
58
+ simplecov (0.7.1)
59
+ multi_json (~> 1.0)
60
+ simplecov-html (~> 0.7.1)
61
+ simplecov-html (0.7.1)
62
+ slop (3.3.3)
63
+ thor (0.16.0)
64
+
65
+ PLATFORMS
66
+ ruby
67
+
68
+ DEPENDENCIES
69
+ bundler (~> 1.2.1)
70
+ fuubar
71
+ guard-rspec
72
+ jeweler (~> 1.8.4)
73
+ pry-debugger
74
+ rb-fsevent
75
+ rb-inotify
76
+ rdoc (~> 3.12)
77
+ rspec (~> 2.11.0)
78
+ simplecov
data/Guardfile ADDED
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Brady Love
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # togglify
2
+
3
+ A simple Ruby gem that allows you to toggle (enable/disable) blocks of code for Rails.
4
+
5
+ ## Installation
6
+
7
+ Add it to your Gemfile
8
+
9
+ gem 'togglify'
10
+
11
+ And run bundle install
12
+
13
+ $ bundle install
14
+
15
+ Thats it your ready to start toggling!
16
+
17
+ ## Usage
18
+
19
+ Anywhere in your code you can add a togglify block giving it a name. Like this one for example
20
+
21
+ Togglify(:sample_name) do
22
+ puts "This will be output to the rails log"
23
+ end
24
+
25
+ By default all toggles are enabled, meaning that any code put in those blocks will be executed. So when this block of code gets ran it will output the puts statement. Now to disable this block of code and any block of cade with the tag :sample_name you can run the following rake command.
26
+
27
+ $ rake togglify:disable[sample_name] # In ZSH you will have to escape the square brackets with a \ or prepend the rake command with noglob
28
+
29
+ Any Togglify block with the name :sample_name is now disabled in the `development` environment. To disable it in other environments append the command with `RAILS_ENV=environment` for example to disable these blocks in the `test` environment you can run
30
+
31
+ $ rake togglify:disable[sample_name] RAILS_ENV=test
32
+
33
+ Then to re-enable all the code blocks with the sample_name tag you can run
34
+
35
+ $ rake togglify:enable[sample_name] # Again, this defaults to development environment. append RAILS_ENV= for different environments
36
+
37
+ ## Contributing to togglify
38
+
39
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
40
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
41
+ * Fork the project.
42
+ * Start a feature/bugfix branch.
43
+ * Commit and push until you are happy with your contribution.
44
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
45
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
46
+
47
+ ## Copyright
48
+
49
+ Copyright (c) 2012 Brady Love. See LICENSE.txt for
50
+ further details.
data/Rakefile ADDED
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "togglify"
18
+ gem.homepage = "http://github.com/bradylove/togglify"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{A Rubygem for feature toggling in Rails}
21
+ gem.description = %Q{A Rubygem that allows you to easily enable/disable parts of your ruby code.}
22
+ gem.email = "love.brady@gmail.com"
23
+ gem.authors = ["Brady Love"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ end
38
+
39
+ task :default => :spec
40
+
41
+ require 'rdoc/task'
42
+ Rake::RDocTask.new do |rdoc|
43
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "togglify #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/benchmark.org ADDED
@@ -0,0 +1,9 @@
1
+ Benchmark.bm(7) do |x|
2
+ x.report("1000:") { 1000.times { Togglify.enable(:blog); Togglify.enabled?(:blog); Togglify.disable(:blog); Togglify.enabled?(:blog) } }
3
+ x.report("10000:") { 10000.times { Togglify.enable(:blog); Togglify.enabled?(:blog); Togglify.disable(:blog); Togglify.enabled?(:blog) } }
4
+ x.report("100000:") { 100000.times { Togglify.enable(:blog); Togglify.enabled?(:blog); Togglify.disable(:blog); Togglify.enabled?(:blog) } }
5
+ end
6
+ user system total real
7
+ 1000: 1.310000 0.300000 1.610000 ( 2.700156)
8
+ 10000: 13.310000 3.070000 16.380000 ( 26.895149)
9
+ 100000: 135.260000 31.520000 166.780000 (276.537799)
@@ -0,0 +1,13 @@
1
+ namespace :togglify do
2
+ desc "Enable a Togglify toggle"
3
+ task :enable, [:toggle] => :environment do |t, args|
4
+ Togglify.enable(args[:toggle])
5
+ puts "Enabled #{args[:toggle]} for #{Rails.env}"
6
+ end
7
+
8
+ desc "Disable a Togglify toggle"
9
+ task :disable, [:toggle] => :environment do |t, args|
10
+ Togglify.disable(args[:toggle])
11
+ puts "Disabled #{args[:toggle]} for #{Rails.env}"
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'togglify'
2
+
3
+ module Togglify
4
+ if defined? Rails::Railtie
5
+ require 'rails'
6
+
7
+ class Railtie < Rails::Railtie
8
+ rake_tasks do
9
+ load "tasks/togglify.rake"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,47 @@
1
+ require 'pstore'
2
+
3
+ module Togglify
4
+ class Storage
5
+ attr_accessor :pstore
6
+
7
+ def initialize
8
+ @pstore = PStore.new(Togglify.file_path)
9
+ end
10
+
11
+ def list
12
+ @pstore.transaction(true) { @pstore.roots }
13
+ end
14
+
15
+ def read(toggle)
16
+ toggle = sanitize(toggle)
17
+ @pstore.transaction(true) { @pstore[toggle] }
18
+ end
19
+
20
+ def write_on(toggle)
21
+ write(toggle, :enabled)
22
+ end
23
+
24
+ def write_off(toggle)
25
+ write(toggle, :disabled)
26
+ end
27
+
28
+ def env
29
+ Rails.env.to_sym
30
+ end
31
+
32
+ private
33
+
34
+ def write(toggle, status)
35
+ toggle = sanitize(toggle)
36
+ status = sanitize(status)
37
+ existing_data = read(toggle) || {}
38
+ existing_data.merge!(id: toggle, env => status)
39
+
40
+ @pstore.transaction { @pstore[toggle] = existing_data }
41
+ end
42
+
43
+ def sanitize(toggle)
44
+ toggle.to_s.downcase.to_sym
45
+ end
46
+ end
47
+ end
data/lib/togglify.rb ADDED
@@ -0,0 +1,45 @@
1
+ require 'togglify/storage'
2
+
3
+ def Togglify(toggle, &block)
4
+ yield if Togglify.enabled? toggle
5
+ end
6
+
7
+ module Togglify
8
+ @@file_path = nil
9
+
10
+ class << self
11
+ def file_path
12
+ @@file_path || Rails.root + ".togglify"
13
+ end
14
+
15
+ def file_path=(file_path)
16
+ @@file_path = file_path
17
+ end
18
+
19
+ def enabled?(toggle)
20
+ stored_toggle = storage.read(toggle)
21
+ return true if stored_toggle.nil?
22
+ return true if stored_toggle[storage.env] == :enabled
23
+
24
+ false
25
+ end
26
+
27
+ def enable(toggle)
28
+ storage.write_on toggle
29
+ end
30
+
31
+ def disable(toggle)
32
+ storage.write_off toggle
33
+ end
34
+
35
+ private
36
+
37
+ def storage
38
+ Togglify::Storage.new
39
+ end
40
+ end
41
+ end
42
+
43
+ if defined? Rails
44
+ require "togglify/railtie"
45
+ end
@@ -0,0 +1,15 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+
13
+ # Ignore all logfiles and tempfiles.
14
+ /log/*.log
15
+ /tmp
data/spec/dummy/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
Binary file
@@ -0,0 +1,23 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '3.2.8'
4
+
5
+ # Bundle edge Rails instead:
6
+ # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
+
8
+ gem 'sqlite3'
9
+ gem 'togglify', :path => "../../../togglify"
10
+ gem 'haml-rails'
11
+ gem 'jquery-rails'
12
+
13
+ # Gems used only for assets and not required
14
+ # in production environments by default.
15
+ group :assets do
16
+ gem 'sass-rails', '~> 3.2.3'
17
+ gem 'coffee-rails', '~> 3.2.1'
18
+ gem 'uglifier', '>= 1.0.3'
19
+ end
20
+
21
+ group :test, :development do
22
+ gem "rspec-rails"
23
+ end
@@ -0,0 +1,139 @@
1
+ PATH
2
+ remote: ../../../togglify
3
+ specs:
4
+ togglify (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ actionmailer (3.2.8)
10
+ actionpack (= 3.2.8)
11
+ mail (~> 2.4.4)
12
+ actionpack (3.2.8)
13
+ activemodel (= 3.2.8)
14
+ activesupport (= 3.2.8)
15
+ builder (~> 3.0.0)
16
+ erubis (~> 2.7.0)
17
+ journey (~> 1.0.4)
18
+ rack (~> 1.4.0)
19
+ rack-cache (~> 1.2)
20
+ rack-test (~> 0.6.1)
21
+ sprockets (~> 2.1.3)
22
+ activemodel (3.2.8)
23
+ activesupport (= 3.2.8)
24
+ builder (~> 3.0.0)
25
+ activerecord (3.2.8)
26
+ activemodel (= 3.2.8)
27
+ activesupport (= 3.2.8)
28
+ arel (~> 3.0.2)
29
+ tzinfo (~> 0.3.29)
30
+ activeresource (3.2.8)
31
+ activemodel (= 3.2.8)
32
+ activesupport (= 3.2.8)
33
+ activesupport (3.2.8)
34
+ i18n (~> 0.6)
35
+ multi_json (~> 1.0)
36
+ arel (3.0.2)
37
+ builder (3.0.4)
38
+ coffee-rails (3.2.2)
39
+ coffee-script (>= 2.2.0)
40
+ railties (~> 3.2.0)
41
+ coffee-script (2.2.0)
42
+ coffee-script-source
43
+ execjs
44
+ coffee-script-source (1.3.3)
45
+ diff-lcs (1.1.3)
46
+ erubis (2.7.0)
47
+ execjs (1.4.0)
48
+ multi_json (~> 1.0)
49
+ haml (3.1.7)
50
+ haml-rails (0.3.5)
51
+ actionpack (>= 3.1, < 4.1)
52
+ activesupport (>= 3.1, < 4.1)
53
+ haml (~> 3.1)
54
+ railties (>= 3.1, < 4.1)
55
+ hike (1.2.1)
56
+ i18n (0.6.1)
57
+ journey (1.0.4)
58
+ jquery-rails (2.1.3)
59
+ railties (>= 3.1.0, < 5.0)
60
+ thor (~> 0.14)
61
+ json (1.7.5)
62
+ mail (2.4.4)
63
+ i18n (>= 0.4.0)
64
+ mime-types (~> 1.16)
65
+ treetop (~> 1.4.8)
66
+ mime-types (1.19)
67
+ multi_json (1.3.6)
68
+ polyglot (0.3.3)
69
+ rack (1.4.1)
70
+ rack-cache (1.2)
71
+ rack (>= 0.4)
72
+ rack-ssl (1.3.2)
73
+ rack
74
+ rack-test (0.6.2)
75
+ rack (>= 1.0)
76
+ rails (3.2.8)
77
+ actionmailer (= 3.2.8)
78
+ actionpack (= 3.2.8)
79
+ activerecord (= 3.2.8)
80
+ activeresource (= 3.2.8)
81
+ activesupport (= 3.2.8)
82
+ bundler (~> 1.0)
83
+ railties (= 3.2.8)
84
+ railties (3.2.8)
85
+ actionpack (= 3.2.8)
86
+ activesupport (= 3.2.8)
87
+ rack-ssl (~> 1.3.2)
88
+ rake (>= 0.8.7)
89
+ rdoc (~> 3.4)
90
+ thor (>= 0.14.6, < 2.0)
91
+ rake (0.9.2.2)
92
+ rdoc (3.12)
93
+ json (~> 1.4)
94
+ rspec (2.11.0)
95
+ rspec-core (~> 2.11.0)
96
+ rspec-expectations (~> 2.11.0)
97
+ rspec-mocks (~> 2.11.0)
98
+ rspec-core (2.11.1)
99
+ rspec-expectations (2.11.3)
100
+ diff-lcs (~> 1.1.3)
101
+ rspec-mocks (2.11.3)
102
+ rspec-rails (2.11.4)
103
+ actionpack (>= 3.0)
104
+ activesupport (>= 3.0)
105
+ railties (>= 3.0)
106
+ rspec (~> 2.11.0)
107
+ sass (3.2.1)
108
+ sass-rails (3.2.5)
109
+ railties (~> 3.2.0)
110
+ sass (>= 3.1.10)
111
+ tilt (~> 1.3)
112
+ sprockets (2.1.3)
113
+ hike (~> 1.2)
114
+ rack (~> 1.0)
115
+ tilt (~> 1.1, != 1.3.0)
116
+ sqlite3 (1.3.6)
117
+ thor (0.16.0)
118
+ tilt (1.3.3)
119
+ treetop (1.4.11)
120
+ polyglot
121
+ polyglot (>= 0.3.1)
122
+ tzinfo (0.3.33)
123
+ uglifier (1.3.0)
124
+ execjs (>= 0.3.0)
125
+ multi_json (~> 1.0, >= 1.0.2)
126
+
127
+ PLATFORMS
128
+ ruby
129
+
130
+ DEPENDENCIES
131
+ coffee-rails (~> 3.2.1)
132
+ haml-rails
133
+ jquery-rails
134
+ rails (= 3.2.8)
135
+ rspec-rails
136
+ sass-rails (~> 3.2.3)
137
+ sqlite3
138
+ togglify!
139
+ uglifier (>= 1.0.3)