ampere 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/CHANGELOG.md +15 -0
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +36 -26
  4. data/README.md +25 -11
  5. data/Rakefile +10 -0
  6. data/VERSION +1 -1
  7. data/ampere.gemspec +83 -9
  8. data/example/.gitignore +5 -0
  9. data/example/.rspec +1 -0
  10. data/example/Gemfile +21 -0
  11. data/example/Gemfile.lock +143 -0
  12. data/example/README +261 -0
  13. data/example/Rakefile +7 -0
  14. data/example/app/assets/images/rails.png +0 -0
  15. data/example/app/assets/javascripts/application.js +9 -0
  16. data/example/app/assets/javascripts/posts.js.coffee +3 -0
  17. data/example/app/assets/stylesheets/application.css +7 -0
  18. data/example/app/assets/stylesheets/posts.css.scss +3 -0
  19. data/example/app/assets/stylesheets/scaffolds.css.scss +56 -0
  20. data/example/app/controllers/application_controller.rb +3 -0
  21. data/example/app/controllers/posts_controller.rb +83 -0
  22. data/example/app/helpers/application_helper.rb +2 -0
  23. data/example/app/helpers/posts_helper.rb +2 -0
  24. data/example/app/mailers/.gitkeep +0 -0
  25. data/example/app/models/.gitkeep +0 -0
  26. data/example/app/models/post.rb +7 -0
  27. data/example/app/views/layouts/application.html.erb +14 -0
  28. data/example/app/views/posts/_form.html.erb +25 -0
  29. data/example/app/views/posts/edit.html.erb +6 -0
  30. data/example/app/views/posts/index.html.erb +25 -0
  31. data/example/app/views/posts/new.html.erb +5 -0
  32. data/example/app/views/posts/show.html.erb +15 -0
  33. data/example/config/ampere.yml +11 -0
  34. data/example/config/application.rb +54 -0
  35. data/example/config/boot.rb +6 -0
  36. data/example/config/environment.rb +5 -0
  37. data/example/config/environments/development.rb +30 -0
  38. data/example/config/environments/production.rb +60 -0
  39. data/example/config/environments/test.rb +39 -0
  40. data/example/config/initializers/backtrace_silencers.rb +7 -0
  41. data/example/config/initializers/inflections.rb +10 -0
  42. data/example/config/initializers/mime_types.rb +5 -0
  43. data/example/config/initializers/secret_token.rb +7 -0
  44. data/example/config/initializers/session_store.rb +8 -0
  45. data/example/config/initializers/wrap_parameters.rb +10 -0
  46. data/example/config/locales/en.yml +5 -0
  47. data/example/config/routes.rb +60 -0
  48. data/example/config.ru +4 -0
  49. data/example/db/seeds.rb +7 -0
  50. data/example/lib/assets/.gitkeep +0 -0
  51. data/example/lib/tasks/.gitkeep +0 -0
  52. data/example/log/.gitkeep +0 -0
  53. data/example/public/404.html +26 -0
  54. data/example/public/422.html +26 -0
  55. data/example/public/500.html +26 -0
  56. data/example/public/favicon.ico +0 -0
  57. data/example/public/index.html +241 -0
  58. data/example/public/robots.txt +5 -0
  59. data/example/script/rails +6 -0
  60. data/example/spec/controllers/posts_controller_spec.rb +164 -0
  61. data/example/spec/helpers/posts_helper_spec.rb +15 -0
  62. data/example/spec/models/post_spec.rb +5 -0
  63. data/example/spec/requests/posts_spec.rb +11 -0
  64. data/example/spec/routing/posts_routing_spec.rb +35 -0
  65. data/example/spec/spec_helper.rb +34 -0
  66. data/example/spec/views/posts/edit.html.erb_spec.rb +20 -0
  67. data/example/spec/views/posts/index.html.erb_spec.rb +23 -0
  68. data/example/spec/views/posts/new.html.erb_spec.rb +20 -0
  69. data/example/spec/views/posts/show.html.erb_spec.rb +17 -0
  70. data/example/vendor/assets/stylesheets/.gitkeep +0 -0
  71. data/example/vendor/plugins/.gitkeep +0 -0
  72. data/lib/ampere/collection.rb +6 -0
  73. data/lib/ampere/keys.rb +37 -0
  74. data/lib/ampere/model.rb +117 -58
  75. data/lib/ampere/timestamps.rb +23 -0
  76. data/lib/ampere.rb +17 -1
  77. data/lib/rails/generators/ampere/config/config_generator.rb +15 -0
  78. data/lib/rails/generators/ampere/config/templates/ampere.yml +11 -0
  79. data/lib/rails/generators/ampere/model/model_generator.rb +27 -0
  80. data/lib/rails/generators/ampere/model/templates/model.rb.tt +10 -0
  81. data/lib/rails/railtie.rb +49 -0
  82. data/lib/rails/tasks/ampere.rake +7 -0
  83. data/spec/models/model_spec.rb +12 -2
  84. data/spec/models/timestamps_spec.rb +45 -0
  85. data/spec/module/collections_spec.rb +5 -0
  86. data/spec/spec_helper.rb +1 -0
  87. metadata +153 -29
data/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ ## 1.2.0
4
+
5
+ * Ampere model IDs are now integers. They are still stored internally the
6
+ same way as before, so a model named Post will have IDs like "post.3892".
7
+ * Rails integration is now complete!
8
+ + Add Ampere to your Gemfile.
9
+ + Type `rails generate ampere:config` to generate an example config file.
10
+ + Type `rake ampere:flush` to flush Redis (this will delete everything).
11
+ * Callbacks!
12
+ + `before_save`
13
+ + `before_create`
14
+ + More to come.
15
+ * Better test coverage.
data/Gemfile CHANGED
@@ -3,8 +3,7 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
- gem 'activesupport'
7
- gem 'activemodel'
6
+ gem 'activerecord'
8
7
  gem 'redis'
9
8
 
10
9
  # Add dependencies to develop your gem here.
@@ -17,4 +16,5 @@ group :development do
17
16
  gem 'simplecov', :require => false, :group => :test
18
17
  gem "rspec"
19
18
  gem "rdoc"
19
+ gem "timecop"
20
20
  end
data/Gemfile.lock CHANGED
@@ -1,21 +1,26 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.2.3)
5
- activesupport (= 3.2.3)
4
+ activemodel (3.2.6)
5
+ activesupport (= 3.2.6)
6
6
  builder (~> 3.0.0)
7
- activesupport (3.2.3)
7
+ activerecord (3.2.6)
8
+ activemodel (= 3.2.6)
9
+ activesupport (= 3.2.6)
10
+ arel (~> 3.0.2)
11
+ tzinfo (~> 0.3.29)
12
+ activesupport (3.2.6)
8
13
  i18n (~> 0.6)
9
14
  multi_json (~> 1.0)
15
+ arel (3.0.2)
10
16
  builder (3.0.0)
11
- cucumber (1.1.3)
17
+ cucumber (1.2.1)
12
18
  builder (>= 2.1.2)
13
- diff-lcs (>= 1.1.2)
14
- gherkin (~> 2.6.7)
19
+ diff-lcs (>= 1.1.3)
20
+ gherkin (~> 2.11.0)
15
21
  json (>= 1.4.6)
16
- term-ansicolor (>= 1.0.6)
17
22
  diff-lcs (1.1.3)
18
- gherkin (2.6.8)
23
+ gherkin (2.11.0)
19
24
  json (>= 1.4.6)
20
25
  git (1.2.5)
21
26
  i18n (0.6.0)
@@ -23,33 +28,37 @@ GEM
23
28
  bundler (~> 1.0)
24
29
  git (>= 1.2.5)
25
30
  rake
26
- json (1.6.1)
27
- multi_json (1.0.4)
31
+ json (1.7.3)
32
+ multi_json (1.3.6)
28
33
  rake (0.9.2.2)
29
- rdoc (3.11)
34
+ rdoc (3.12)
30
35
  json (~> 1.4)
31
- redis (2.2.2)
32
- rspec (2.7.0)
33
- rspec-core (~> 2.7.0)
34
- rspec-expectations (~> 2.7.0)
35
- rspec-mocks (~> 2.7.0)
36
- rspec-core (2.7.1)
37
- rspec-expectations (2.7.0)
38
- diff-lcs (~> 1.1.2)
39
- rspec-mocks (2.7.0)
40
- shoulda (2.11.3)
41
- simplecov (0.5.4)
42
- multi_json (~> 1.0.3)
36
+ redis (3.0.1)
37
+ rspec (2.10.0)
38
+ rspec-core (~> 2.10.0)
39
+ rspec-expectations (~> 2.10.0)
40
+ rspec-mocks (~> 2.10.0)
41
+ rspec-core (2.10.1)
42
+ rspec-expectations (2.10.0)
43
+ diff-lcs (~> 1.1.3)
44
+ rspec-mocks (2.10.1)
45
+ shoulda (3.0.1)
46
+ shoulda-context (~> 1.0.0)
47
+ shoulda-matchers (~> 1.0.0)
48
+ shoulda-context (1.0.0)
49
+ shoulda-matchers (1.0.0)
50
+ simplecov (0.6.4)
51
+ multi_json (~> 1.0)
43
52
  simplecov-html (~> 0.5.3)
44
53
  simplecov-html (0.5.3)
45
- term-ansicolor (1.0.7)
54
+ timecop (0.3.5)
55
+ tzinfo (0.3.33)
46
56
 
47
57
  PLATFORMS
48
58
  ruby
49
59
 
50
60
  DEPENDENCIES
51
- activemodel
52
- activesupport
61
+ activerecord
53
62
  bundler (>= 1.0.0)
54
63
  cucumber
55
64
  jeweler (~> 1.6.4)
@@ -58,3 +67,4 @@ DEPENDENCIES
58
67
  rspec
59
68
  shoulda
60
69
  simplecov
70
+ timecop
data/README.md CHANGED
@@ -2,20 +2,23 @@
2
2
 
3
3
  Ampere is an ActiveRecord-style ORM for the Redis key/value data store.
4
4
 
5
- ## A note about Ampere version >1.0 (IMPORTANT!!!)
5
+ ## Usage
6
6
 
7
- For the 1.0 release I changed Ampere's API so that instead of subclassing
8
- `Ampere::Model` to use Ampere's methods, you include it as a mixin. This
9
- change has been reflected in the examples below.
7
+ Add it to your Gemfile:
10
8
 
11
- This change was to unify the usage of Ampere a little more with usage of
12
- Mongoid, and also so that users of Ampere can use their own class hierarchies,
13
- which at some later date might have significance with how Ampere works.
9
+ gem 'ampere', '1.2.0'
14
10
 
15
- ## Usage
11
+ Generate a config file:
12
+
13
+ rails generate ampere:config
14
+
15
+ Generate a model:
16
16
 
17
- Write a model class and make it inherit from the `Ampere::Model` class.
18
- These work pretty similarly to how they do in ActiveRecord or Mongoid.
17
+ rails generate model post title body
18
+
19
+ Ampere models include the `Ampere::Model` mixin, which gives them much
20
+ of the same kind of functionality you're used to in ActiveRecord or
21
+ Mongoid.
19
22
 
20
23
  class Car
21
24
  include Ampere::Model
@@ -58,7 +61,8 @@ be slower if one of the keys you are searching by isn't indexed).
58
61
  post = Post.where(:title => "BREAKING: Kitties Are Awesome").first
59
62
 
60
63
  Ampere query results implement the `Enumerable` module, so all the Enumerable methods
61
- you know and love are there.
64
+ you know and love are there. These are lazy-evaluative, only making queries to Redis
65
+ when an object is taken out of the collection. Treat them like Arrays, or don't.
62
66
 
63
67
  ### Indexes
64
68
 
@@ -112,6 +116,16 @@ You can now add validations to your Ampere models thanks to the magic of ActiveM
112
116
 
113
117
  It's that easy!
114
118
 
119
+ ## A note about Ampere version >1.0 (IMPORTANT!!!)
120
+
121
+ For the 1.0 release I changed Ampere's API so that instead of subclassing
122
+ `Ampere::Model` to use Ampere's methods, you include it as a mixin. This
123
+ change has been reflected in the examples above.
124
+
125
+ This change was to unify the usage of Ampere a little more with usage of
126
+ Mongoid, and also so that users of Ampere can use their own class hierarchies,
127
+ which at some later date might have significance with how Ampere works.
128
+
115
129
  ## Contributing to ampere
116
130
 
117
131
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
data/Rakefile CHANGED
@@ -47,3 +47,13 @@ RDoc::Task.new do |rdoc|
47
47
  rdoc.rdoc_files.include('README*')
48
48
  rdoc.rdoc_files.include('lib/**/*.rb')
49
49
  end
50
+
51
+ namespace :redis do
52
+ desc "Flush Redis data (warning: will flush EVERYTHING, including non-Ampere stuff)"
53
+ task :flush do
54
+ require 'redis'
55
+ Redis.new.flushall
56
+ puts "Redis data FLUSHED!"
57
+ end
58
+ end
59
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.2.0
data/ampere.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ampere"
8
- s.version = "1.1.1"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Max Thom Stahl"]
12
- s.date = "2012-05-12"
12
+ s.date = "2012-06-15"
13
13
  s.description = "An ActiveRecord/Mongoid-esque object model for the Redis key/value data store."
14
14
  s.email = "max@villainousindustri.es"
15
15
  s.extra_rdoc_files = [
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ".document",
21
21
  ".rspec",
22
22
  ".rvmrc",
23
+ "CHANGELOG.md",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
25
26
  "LICENSE.txt",
@@ -27,18 +28,91 @@ Gem::Specification.new do |s|
27
28
  "Rakefile",
28
29
  "VERSION",
29
30
  "ampere.gemspec",
31
+ "example/.gitignore",
32
+ "example/.rspec",
33
+ "example/Gemfile",
34
+ "example/Gemfile.lock",
35
+ "example/README",
36
+ "example/Rakefile",
37
+ "example/app/assets/images/rails.png",
38
+ "example/app/assets/javascripts/application.js",
39
+ "example/app/assets/javascripts/posts.js.coffee",
40
+ "example/app/assets/stylesheets/application.css",
41
+ "example/app/assets/stylesheets/posts.css.scss",
42
+ "example/app/assets/stylesheets/scaffolds.css.scss",
43
+ "example/app/controllers/application_controller.rb",
44
+ "example/app/controllers/posts_controller.rb",
45
+ "example/app/helpers/application_helper.rb",
46
+ "example/app/helpers/posts_helper.rb",
47
+ "example/app/mailers/.gitkeep",
48
+ "example/app/models/.gitkeep",
49
+ "example/app/models/post.rb",
50
+ "example/app/views/layouts/application.html.erb",
51
+ "example/app/views/posts/_form.html.erb",
52
+ "example/app/views/posts/edit.html.erb",
53
+ "example/app/views/posts/index.html.erb",
54
+ "example/app/views/posts/new.html.erb",
55
+ "example/app/views/posts/show.html.erb",
56
+ "example/config.ru",
57
+ "example/config/ampere.yml",
58
+ "example/config/application.rb",
59
+ "example/config/boot.rb",
60
+ "example/config/environment.rb",
61
+ "example/config/environments/development.rb",
62
+ "example/config/environments/production.rb",
63
+ "example/config/environments/test.rb",
64
+ "example/config/initializers/backtrace_silencers.rb",
65
+ "example/config/initializers/inflections.rb",
66
+ "example/config/initializers/mime_types.rb",
67
+ "example/config/initializers/secret_token.rb",
68
+ "example/config/initializers/session_store.rb",
69
+ "example/config/initializers/wrap_parameters.rb",
70
+ "example/config/locales/en.yml",
71
+ "example/config/routes.rb",
72
+ "example/db/seeds.rb",
73
+ "example/lib/assets/.gitkeep",
74
+ "example/lib/tasks/.gitkeep",
75
+ "example/log/.gitkeep",
76
+ "example/public/404.html",
77
+ "example/public/422.html",
78
+ "example/public/500.html",
79
+ "example/public/favicon.ico",
80
+ "example/public/index.html",
81
+ "example/public/robots.txt",
82
+ "example/script/rails",
83
+ "example/spec/controllers/posts_controller_spec.rb",
84
+ "example/spec/helpers/posts_helper_spec.rb",
85
+ "example/spec/models/post_spec.rb",
86
+ "example/spec/requests/posts_spec.rb",
87
+ "example/spec/routing/posts_routing_spec.rb",
88
+ "example/spec/spec_helper.rb",
89
+ "example/spec/views/posts/edit.html.erb_spec.rb",
90
+ "example/spec/views/posts/index.html.erb_spec.rb",
91
+ "example/spec/views/posts/new.html.erb_spec.rb",
92
+ "example/spec/views/posts/show.html.erb_spec.rb",
93
+ "example/vendor/assets/stylesheets/.gitkeep",
94
+ "example/vendor/plugins/.gitkeep",
30
95
  "features/ampere.feature",
31
96
  "features/step_definitions/ampere_steps.rb",
32
97
  "features/support/env.rb",
33
98
  "lib/ampere.rb",
34
99
  "lib/ampere/collection.rb",
100
+ "lib/ampere/keys.rb",
35
101
  "lib/ampere/model.rb",
102
+ "lib/ampere/timestamps.rb",
103
+ "lib/rails/generators/ampere/config/config_generator.rb",
104
+ "lib/rails/generators/ampere/config/templates/ampere.yml",
105
+ "lib/rails/generators/ampere/model/model_generator.rb",
106
+ "lib/rails/generators/ampere/model/templates/model.rb.tt",
107
+ "lib/rails/railtie.rb",
108
+ "lib/rails/tasks/ampere.rake",
36
109
  "spec/models/indices_spec.rb",
37
110
  "spec/models/model_spec.rb",
38
111
  "spec/models/queries_spec.rb",
39
112
  "spec/models/relationships/belongs_to_spec.rb",
40
113
  "spec/models/relationships/has_many_spec.rb",
41
114
  "spec/models/relationships/has_one_spec.rb",
115
+ "spec/models/timestamps_spec.rb",
42
116
  "spec/models/updates_spec.rb",
43
117
  "spec/models/validations_spec.rb",
44
118
  "spec/module/ampere_spec.rb",
@@ -51,15 +125,14 @@ Gem::Specification.new do |s|
51
125
  s.homepage = "http://github.com/mstahl/ampere"
52
126
  s.licenses = ["EPL"]
53
127
  s.require_paths = ["lib"]
54
- s.rubygems_version = "1.8.15"
128
+ s.rubygems_version = "1.8.24"
55
129
  s.summary = "A pure Ruby ORM for Redis."
56
130
 
57
131
  if s.respond_to? :specification_version then
58
132
  s.specification_version = 3
59
133
 
60
134
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_runtime_dependency(%q<activesupport>, [">= 0"])
62
- s.add_runtime_dependency(%q<activemodel>, [">= 0"])
135
+ s.add_runtime_dependency(%q<activerecord>, [">= 0"])
63
136
  s.add_runtime_dependency(%q<redis>, [">= 0"])
64
137
  s.add_development_dependency(%q<shoulda>, [">= 0"])
65
138
  s.add_development_dependency(%q<cucumber>, [">= 0"])
@@ -68,9 +141,9 @@ Gem::Specification.new do |s|
68
141
  s.add_development_dependency(%q<simplecov>, [">= 0"])
69
142
  s.add_development_dependency(%q<rspec>, [">= 0"])
70
143
  s.add_development_dependency(%q<rdoc>, [">= 0"])
144
+ s.add_development_dependency(%q<timecop>, [">= 0"])
71
145
  else
72
- s.add_dependency(%q<activesupport>, [">= 0"])
73
- s.add_dependency(%q<activemodel>, [">= 0"])
146
+ s.add_dependency(%q<activerecord>, [">= 0"])
74
147
  s.add_dependency(%q<redis>, [">= 0"])
75
148
  s.add_dependency(%q<shoulda>, [">= 0"])
76
149
  s.add_dependency(%q<cucumber>, [">= 0"])
@@ -79,10 +152,10 @@ Gem::Specification.new do |s|
79
152
  s.add_dependency(%q<simplecov>, [">= 0"])
80
153
  s.add_dependency(%q<rspec>, [">= 0"])
81
154
  s.add_dependency(%q<rdoc>, [">= 0"])
155
+ s.add_dependency(%q<timecop>, [">= 0"])
82
156
  end
83
157
  else
84
- s.add_dependency(%q<activesupport>, [">= 0"])
85
- s.add_dependency(%q<activemodel>, [">= 0"])
158
+ s.add_dependency(%q<activerecord>, [">= 0"])
86
159
  s.add_dependency(%q<redis>, [">= 0"])
87
160
  s.add_dependency(%q<shoulda>, [">= 0"])
88
161
  s.add_dependency(%q<cucumber>, [">= 0"])
@@ -91,6 +164,7 @@ Gem::Specification.new do |s|
91
164
  s.add_dependency(%q<simplecov>, [">= 0"])
92
165
  s.add_dependency(%q<rspec>, [">= 0"])
93
166
  s.add_dependency(%q<rdoc>, [">= 0"])
167
+ s.add_dependency(%q<timecop>, [">= 0"])
94
168
  end
95
169
  end
96
170
 
@@ -0,0 +1,5 @@
1
+ .bundle
2
+ db/*.sqlite3
3
+ log/*.log
4
+ tmp/
5
+ .sass-cache/
data/example/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/example/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'ampere'
4
+ gem 'haml'
5
+ gem 'jquery-rails'
6
+ gem 'rails', '3.1.1'
7
+ gem 'unicorn'
8
+
9
+ # Gems used only for assets and not required
10
+ # in production environments by default.
11
+ group :assets do
12
+ gem 'sass-rails', '~> 3.1.4'
13
+ gem 'coffee-rails', '~> 3.1.1'
14
+ gem 'uglifier', '>= 1.0.3'
15
+ end
16
+
17
+ group :development do
18
+ gem 'rspec'
19
+ gem 'rspec-rails'
20
+ end
21
+
@@ -0,0 +1,143 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionmailer (3.1.1)
5
+ actionpack (= 3.1.1)
6
+ mail (~> 2.3.0)
7
+ actionpack (3.1.1)
8
+ activemodel (= 3.1.1)
9
+ activesupport (= 3.1.1)
10
+ builder (~> 3.0.0)
11
+ erubis (~> 2.7.0)
12
+ i18n (~> 0.6)
13
+ rack (~> 1.3.2)
14
+ rack-cache (~> 1.1)
15
+ rack-mount (~> 0.8.2)
16
+ rack-test (~> 0.6.1)
17
+ sprockets (~> 2.0.2)
18
+ activemodel (3.1.1)
19
+ activesupport (= 3.1.1)
20
+ builder (~> 3.0.0)
21
+ i18n (~> 0.6)
22
+ activerecord (3.1.1)
23
+ activemodel (= 3.1.1)
24
+ activesupport (= 3.1.1)
25
+ arel (~> 2.2.1)
26
+ tzinfo (~> 0.3.29)
27
+ activeresource (3.1.1)
28
+ activemodel (= 3.1.1)
29
+ activesupport (= 3.1.1)
30
+ activesupport (3.1.1)
31
+ multi_json (~> 1.0)
32
+ ampere (1.2.0)
33
+ activemodel
34
+ activesupport
35
+ redis
36
+ arel (2.2.3)
37
+ builder (3.0.0)
38
+ coffee-rails (3.1.1)
39
+ coffee-script (>= 2.2.0)
40
+ railties (~> 3.1.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.6)
50
+ hike (1.2.1)
51
+ i18n (0.6.0)
52
+ jquery-rails (1.0.19)
53
+ railties (~> 3.0)
54
+ thor (~> 0.14)
55
+ json (1.7.3)
56
+ kgio (2.7.4)
57
+ mail (2.3.3)
58
+ i18n (>= 0.4.0)
59
+ mime-types (~> 1.16)
60
+ treetop (~> 1.4.8)
61
+ mime-types (1.18)
62
+ multi_json (1.3.6)
63
+ polyglot (0.3.3)
64
+ rack (1.3.6)
65
+ rack-cache (1.2)
66
+ rack (>= 0.4)
67
+ rack-mount (0.8.3)
68
+ rack (>= 1.0.0)
69
+ rack-ssl (1.3.2)
70
+ rack
71
+ rack-test (0.6.1)
72
+ rack (>= 1.0)
73
+ rails (3.1.1)
74
+ actionmailer (= 3.1.1)
75
+ actionpack (= 3.1.1)
76
+ activerecord (= 3.1.1)
77
+ activeresource (= 3.1.1)
78
+ activesupport (= 3.1.1)
79
+ bundler (~> 1.0)
80
+ railties (= 3.1.1)
81
+ railties (3.1.1)
82
+ actionpack (= 3.1.1)
83
+ activesupport (= 3.1.1)
84
+ rack-ssl (~> 1.3.2)
85
+ rake (>= 0.8.7)
86
+ rdoc (~> 3.4)
87
+ thor (~> 0.14.6)
88
+ raindrops (0.9.0)
89
+ rake (0.9.2.2)
90
+ rdoc (3.12)
91
+ json (~> 1.4)
92
+ redis (3.0.1)
93
+ rspec (2.10.0)
94
+ rspec-core (~> 2.10.0)
95
+ rspec-expectations (~> 2.10.0)
96
+ rspec-mocks (~> 2.10.0)
97
+ rspec-core (2.10.1)
98
+ rspec-expectations (2.10.0)
99
+ diff-lcs (~> 1.1.3)
100
+ rspec-mocks (2.10.1)
101
+ rspec-rails (2.10.1)
102
+ actionpack (>= 3.0)
103
+ activesupport (>= 3.0)
104
+ railties (>= 3.0)
105
+ rspec (~> 2.10.0)
106
+ sass (3.1.19)
107
+ sass-rails (3.1.6)
108
+ actionpack (~> 3.1.0)
109
+ railties (~> 3.1.0)
110
+ sass (>= 3.1.10)
111
+ tilt (~> 1.3.2)
112
+ sprockets (2.0.4)
113
+ hike (~> 1.2)
114
+ rack (~> 1.0)
115
+ tilt (~> 1.1, != 1.3.0)
116
+ thor (0.14.6)
117
+ tilt (1.3.3)
118
+ treetop (1.4.10)
119
+ polyglot
120
+ polyglot (>= 0.3.1)
121
+ tzinfo (0.3.33)
122
+ uglifier (1.2.4)
123
+ execjs (>= 0.3.0)
124
+ multi_json (>= 1.0.2)
125
+ unicorn (4.3.1)
126
+ kgio (~> 2.6)
127
+ rack
128
+ raindrops (~> 0.7)
129
+
130
+ PLATFORMS
131
+ ruby
132
+
133
+ DEPENDENCIES
134
+ ampere
135
+ coffee-rails (~> 3.1.1)
136
+ haml
137
+ jquery-rails
138
+ rails (= 3.1.1)
139
+ rspec
140
+ rspec-rails
141
+ sass-rails (~> 3.1.4)
142
+ uglifier (>= 1.0.3)
143
+ unicorn