chanko 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b239416318a058952d59ce109343a369cc4fe3ea
4
+ data.tar.gz: 36a744a0b562fa16cd0864c6a87d16e1238ebe0a
5
+ SHA512:
6
+ metadata.gz: 5ae4ded8653d633c7074486db302c3a45800bfb97a6ecd8b8bced4597bf2caf029f76ed8a12eee15945faf39c27b3ba1c292ac8e5a9b2f80b674d605ede31c80
7
+ data.tar.gz: 0a0cbb3b6f80ce06ae0e9e6c75649b66c526c4a8ea21222a96c3130dcee790014754d0fe65c813be8aeabd2dc5bb910b6ebca3161c0302fbd0aca96c80fcdfdc
@@ -1,7 +1,7 @@
1
1
  rvm:
2
- - 1.8.7
3
2
  - 1.9.3
4
3
  - 2.0.0
4
+ - 2.1.0
5
5
  branches:
6
6
  only:
7
7
  - master
data/Gemfile CHANGED
@@ -5,13 +5,13 @@ gemspec
5
5
  group :development, :test, :production do
6
6
  gem "jquery-rails"
7
7
  gem "quiet_assets"
8
- gem "rails", ">= 3.0.10"
8
+ gem "rails", ">= 4.0.0"
9
9
  gem "slim"
10
10
  gem "sqlite3"
11
11
  end
12
12
 
13
13
  group :test do
14
- gem "rspec-rails", "2.12.2"
14
+ gem "rspec-rails", "2.14.0"
15
15
  end
16
16
 
17
17
  group :development, :test do
@@ -20,7 +20,7 @@ group :development, :test do
20
20
  end
21
21
 
22
22
  group :assets do
23
- gem "sass-rails", ">= 3.0.10"
24
- gem "coffee-rails", ">= 3.0.10"
23
+ gem "sass-rails"
24
+ gem "coffee-rails"
25
25
  gem "uglifier"
26
26
  end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Chanko [![Build Status](https://travis-ci.org/cookpad/chanko.png)](https://travis-ci.org/cookpad/chanko) [![Code Climate](https://codeclimate.com/github/cookpad/chanko.png)](https://codeclimate.com/github/cookpad/chanko) [![Coverage Status](https://coveralls.io/repos/cookpad/chanko/badge.png?branch=master)](https://coveralls.io/r/cookpad/chanko)
2
2
 
3
- http://cookpad.github.com/chanko/
3
+ http://cookpad.github.io/chanko/
4
4
 
5
5
  Chanko provides a simple framework for rapidly and safely prototyping new
6
6
  features in your production Rails app, and exposing these prototypes to
@@ -13,7 +13,7 @@ it will be automatically hidden and fallback to its normal behavior.
13
13
 
14
14
  ## Requirements
15
15
  * Ruby >= 1.8.7
16
- * Rails >= 3.0.10
16
+ * Rails >= 3.0.10 (and Rails4!)
17
17
 
18
18
 
19
19
  ## Usage
@@ -1,5 +1,8 @@
1
1
  module Chanko
2
2
  class ActiveIf
3
+ class NoConditionFound < StandardError
4
+ end
5
+
3
6
  class << self
4
7
  def define(label, &block)
5
8
  definitions[label] = block
@@ -18,10 +21,18 @@ module Chanko
18
21
  end
19
22
  end
20
23
 
21
- attr_reader :conditions, :options
24
+ attr_reader :conditions
25
+
26
+ def options # remains just for backward compatibility
27
+ warn "ActiveIf#options is deprecated and is never used at #{caller[0]}"
28
+ @options
29
+ end
22
30
 
23
31
  def initialize(*conditions, &block)
24
32
  @options = conditions.extract_options!
33
+ unless @options.empty?
34
+ warn "options in ActiveIf#new are deprecated and are never used at #{caller[0]}"
35
+ end
25
36
  @conditions = conditions
26
37
  @block = block
27
38
  end
@@ -49,7 +60,11 @@ module Chanko
49
60
 
50
61
  def block
51
62
  condition = @conditions.first
52
- condition.is_a?(Block) ? condition : ActiveIf.find(condition)
63
+ if condition.kind_of?(Block)
64
+ condition
65
+ else
66
+ ActiveIf.find(condition) or raise NoConditionFound, condition
67
+ end
53
68
  end
54
69
  end
55
70
 
@@ -1,11 +1,17 @@
1
1
  module Chanko
2
2
  class Railtie < Rails::Railtie
3
3
  initializer "chanko" do |app|
4
- ::ActionView::Base.send(:include, Helper, Invoker, UnitProxyProvider)
5
- ::ActionController::Base.send(:include, Controller, Invoker, UnitProxyProvider)
6
- ::ActiveRecord::Base.send(:include, UnitProxyProvider)
7
- ::ActiveRecord::Relation.send(:include, UnitProxyProvider)
8
- ::ActiveRecord::Associations::CollectionAssociation.send(:include, UnitProxyProvider)
4
+ ActiveSupport.on_load :action_view do
5
+ ::ActionView::Base.send(:include, Helper, Invoker, UnitProxyProvider)
6
+ end
7
+ ActiveSupport.on_load :action_controller do
8
+ ::ActionController::Base.send(:include, Controller, Invoker, UnitProxyProvider)
9
+ end
10
+ ActiveSupport.on_load :active_record do
11
+ ::ActiveRecord::Base.send(:include, UnitProxyProvider)
12
+ ::ActiveRecord::Relation.send(:include, UnitProxyProvider)
13
+ ::ActiveRecord::Associations::CollectionAssociation.send(:include, UnitProxyProvider)
14
+ end
9
15
  end
10
16
  end
11
17
  end
@@ -1,12 +1,6 @@
1
1
  module Chanko
2
2
  module Unit
3
3
  class ScopeFinder
4
- LABEL_SCOPE_MAP = {
5
- :controller => ActionController::Base,
6
- :model => ActiveRecord::Base,
7
- :view => ActionView::Base,
8
- }
9
-
10
4
  def self.find(*args)
11
5
  new(*args).find
12
6
  end
@@ -34,7 +28,13 @@ module Chanko
34
28
  end
35
29
 
36
30
  def label
37
- LABEL_SCOPE_MAP[@identifier]
31
+ label_scope_map = {
32
+ :controller => ActionController::Base,
33
+ :model => ActiveRecord::Base,
34
+ :view => ActionView::Base
35
+ }
36
+
37
+ label_scope_map[@identifier]
38
38
  end
39
39
  end
40
40
  end
@@ -1,3 +1,3 @@
1
1
  module Chanko
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ module Chanko
4
+ describe ActiveIf do
5
+ around do |example|
6
+ origin, $stderr = $stderr, StringIO.new
7
+ example.run
8
+ $stderr = origin
9
+ end
10
+
11
+ describe ".new" do
12
+ context "with option arguments" do
13
+ it "prints warning message on standard error output" do
14
+ ActiveIf.new(foo: "bar")
15
+ $stderr.string.should =~ /\Aoptions in ActiveIf#new are deprecated and are never used at #{__FILE__}/
16
+ end
17
+ end
18
+ end
19
+
20
+ describe "#options" do
21
+ it "prints warning message on standard error output" do
22
+ ActiveIf.new.options
23
+ $stderr.string.should =~ /\AActiveIf#options is deprecated and is never used at #{__FILE__}/
24
+ end
25
+ end
26
+ end
27
+ end
@@ -4,11 +4,17 @@ require "stringio"
4
4
  module Chanko
5
5
  describe Logger do
6
6
  around do |example|
7
- origin, Rails.logger = Rails.logger, ::Logger.new(io)
7
+ origin, Rails.logger = Rails.logger, logger
8
8
  example.run
9
9
  Rails.logger = origin
10
10
  end
11
11
 
12
+ let(:logger) do
13
+ logger = ::Logger.new(io)
14
+ logger.formatter = lambda {|severity, time, progname, message| message }
15
+ logger
16
+ end
17
+
12
18
  let(:io) do
13
19
  StringIO.new
14
20
  end
@@ -87,7 +93,7 @@ module Chanko
87
93
  end
88
94
 
89
95
  it "does notihng" do
90
- expect { described_class.debug(exception) }.not_to raise_error(NoMethodError)
96
+ expect { described_class.debug(exception) }.not_to raise_error
91
97
  end
92
98
  end
93
99
  end
@@ -50,6 +50,16 @@ module Chanko
50
50
  should be_false
51
51
  end
52
52
  end
53
+
54
+ context "when an undefined condition is specified" do
55
+ before do
56
+ unit.active_if(:this_is_not_a_condition)
57
+ end
58
+
59
+ specify "an undefined condition must raise NoConditionFound" do
60
+ expect { subject }.to raise_error Chanko::ActiveIf::NoConditionFound, /this_is_not_a_condition/
61
+ end
62
+ end
53
63
  end
54
64
 
55
65
  describe ".any" do
@@ -160,7 +170,7 @@ module Chanko
160
170
  end
161
171
 
162
172
  describe ".shared" do
163
- it "stroes given block with given label" do
173
+ it "stores given block with given label" do
164
174
  unit.shared(:test) do
165
175
  "test"
166
176
  end
@@ -17,7 +17,7 @@ class EntriesController < ApplicationController
17
17
  end
18
18
 
19
19
  def create
20
- @entry = Entry.create(params[:entry])
20
+ @entry = Entry.create(params[:entry].permit(:title, :body))
21
21
  redirect_to @entry
22
22
  end
23
23
 
@@ -27,7 +27,7 @@ class EntriesController < ApplicationController
27
27
 
28
28
  def update
29
29
  @entry = Entry.find(params[:id])
30
- @entry.update_attributes(params[:entry])
30
+ @entry.update_attributes(params[:entry].permit(:title, :body))
31
31
  redirect_to @entry
32
32
  end
33
33
  end
@@ -1,3 +1,2 @@
1
1
  class Entry < ActiveRecord::Base
2
- attr_accessible :body, :deleted_at, :title
3
2
  end
@@ -1,15 +1,9 @@
1
1
  require File.expand_path('../boot', __FILE__)
2
2
 
3
- # Pick the frameworks you want:
4
- require "active_record/railtie"
5
- require "action_controller/railtie"
6
- require "action_mailer/railtie"
7
- require "active_resource/railtie"
8
- require "sprockets/railtie"
9
- # require "rails/test_unit/railtie"
3
+ require "rails/all"
10
4
 
11
5
  if defined?(Bundler)
12
- Bundler.require(*Rails.groups(:assets => %w(development test)))
6
+ Bundler.require(:default, Rails.env)
13
7
  end
14
8
 
15
9
  require "chanko"
@@ -52,15 +46,6 @@ module Dummy
52
46
  # like if you have constraints or database-specific column types
53
47
  # config.active_record.schema_format = :sql
54
48
 
55
- # Enforce whitelist mode for mass assignment.
56
- # This will create an empty whitelist of attributes available for mass-assignment for all models
57
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
58
- # parameters by using an attr_accessible or attr_protected declaration.
59
- config.active_record.whitelist_attributes = true
60
-
61
- # Enable the asset pipeline
62
- config.assets.enabled = true
63
-
64
49
  # Version of your assets, change this if you want to expire all your assets
65
50
  config.assets.version = '1.0'
66
51
  end
@@ -6,9 +6,6 @@ Dummy::Application.configure do
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
11
-
12
9
  # Show full error reports and disable caching
13
10
  config.consider_all_requests_local = true
14
11
  config.action_controller.perform_caching = false
@@ -19,19 +16,8 @@ Dummy::Application.configure do
19
16
  # Print deprecation notices to the Rails logger
20
17
  config.active_support.deprecation = :log
21
18
 
22
- # Only use best-standards-support built into browsers
23
- config.action_dispatch.best_standards_support = :builtin
24
-
25
- # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
27
-
28
- # Log the query plan for queries taking more than this (works
29
- # with SQLite, MySQL, and PostgreSQL)
30
- config.active_record.auto_explain_threshold_in_seconds = 0.5
31
-
32
- # Do not compress assets
33
- config.assets.compress = false
34
-
35
19
  # Expands the lines which load the assets
36
20
  config.assets.debug = true
21
+
22
+ config.eager_load = false
37
23
  end
@@ -64,4 +64,8 @@ Dummy::Application.configure do
64
64
  # Log the query plan for queries taking more than this (works
65
65
  # with SQLite, MySQL, and PostgreSQL)
66
66
  # config.active_record.auto_explain_threshold_in_seconds = 0.5
67
+
68
+ config.eager_load = true
69
+
70
+ config.assets.js_compressor = :uglifier
67
71
  end
@@ -11,9 +11,6 @@ Dummy::Application.configure do
11
11
  config.serve_static_assets = true
12
12
  config.static_cache_control = "public, max-age=3600"
13
13
 
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
16
-
17
14
  # Show full error reports and disable caching
18
15
  config.consider_all_requests_local = true
19
16
  config.action_controller.perform_caching = false
@@ -29,9 +26,8 @@ Dummy::Application.configure do
29
26
  # ActionMailer::Base.deliveries array.
30
27
  config.action_mailer.delivery_method = :test
31
28
 
32
- # Raise exception on mass assignment protection for Active Record models
33
- config.active_record.mass_assignment_sanitizer = :strict
34
-
35
29
  # Print deprecation notices to the stderr
36
30
  config.active_support.deprecation = :stderr
31
+
32
+ config.eager_load = false
37
33
  end
@@ -5,3 +5,4 @@
5
5
  # Make sure the secret is at least 30 characters and all random,
6
6
  # no regular words or you'll be exposed to dictionary attacks.
7
7
  Dummy::Application.config.secret_token = '51ca37a6709156b59d667c092cd18abe392f137efb5e8be61287a5d38823e31d61470bb417098476092e5c53c52467e4a949163c6e78ce70e921ed928b39f9d8'
8
+ Dummy::Application.config.secret_key_base = '24b191b073b60770ff32d8c0096a6786c8aa0c5f7c0968838f5321a0fbda49da3a567984ca3862f353b4cc408e1e23fedd1f3d808ae91965758239f19642a2e6'
metadata CHANGED
@@ -1,100 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chanko
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
5
- prerelease:
4
+ version: 2.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ryo Nakamura
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-23 00:00:00.000000000 Z
11
+ date: 2014-02-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.10
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.10
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: coffee-rails
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 3.0.10
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 3.0.10
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: coveralls
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: jquery-rails
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: pry
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec-rails
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - '='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - '='
108
95
  - !ruby/object:Gem::Version
@@ -110,97 +97,85 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: sass-rails
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: 3.0.10
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: 3.0.10
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: simplecov
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - '>='
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - '>='
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: slim
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - '>='
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - '>='
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: sqlite3
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - '>='
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - '>='
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: thin
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - '>='
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - '>='
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: uglifier
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
- - - ! '>='
171
+ - - '>='
196
172
  - !ruby/object:Gem::Version
197
173
  version: '0'
198
174
  type: :development
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
- - - ! '>='
178
+ - - '>='
204
179
  - !ruby/object:Gem::Version
205
180
  version: '0'
206
181
  description: Chanko is a Rails extension tool
@@ -242,6 +217,7 @@ files:
242
217
  - lib/generators/chanko/unit/templates/unit.rb.erb
243
218
  - lib/generators/chanko/unit/unit_generator.rb
244
219
  - spec/chanko/controller_spec.rb
220
+ - spec/chanko/deprecated_spec.rb
245
221
  - spec/chanko/exception_handler_spec.rb
246
222
  - spec/chanko/function_spec.rb
247
223
  - spec/chanko/helper_spec.rb
@@ -306,30 +282,30 @@ files:
306
282
  - spec/spec_helper.rb
307
283
  homepage: https://github.com/cookpad/chanko
308
284
  licenses: []
285
+ metadata: {}
309
286
  post_install_message:
310
287
  rdoc_options: []
311
288
  require_paths:
312
289
  - lib
313
290
  required_ruby_version: !ruby/object:Gem::Requirement
314
- none: false
315
291
  requirements:
316
- - - ! '>='
292
+ - - '>='
317
293
  - !ruby/object:Gem::Version
318
294
  version: '0'
319
295
  required_rubygems_version: !ruby/object:Gem::Requirement
320
- none: false
321
296
  requirements:
322
- - - ! '>='
297
+ - - '>='
323
298
  - !ruby/object:Gem::Version
324
299
  version: '0'
325
300
  requirements: []
326
301
  rubyforge_project:
327
- rubygems_version: 1.8.23
302
+ rubygems_version: 2.0.3
328
303
  signing_key:
329
- specification_version: 3
304
+ specification_version: 4
330
305
  summary: Rails extension tool
331
306
  test_files:
332
307
  - spec/chanko/controller_spec.rb
308
+ - spec/chanko/deprecated_spec.rb
333
309
  - spec/chanko/exception_handler_spec.rb
334
310
  - spec/chanko/function_spec.rb
335
311
  - spec/chanko/helper_spec.rb