magnetik 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35a46c9a2d11334ebca571e3fe836d3d8bf656a8
4
- data.tar.gz: 350300551b7c0ee49b9c408efaf1f14112cb401d
3
+ metadata.gz: 46632b916b07bdeb2940beecad6f7df36800989e
4
+ data.tar.gz: 4ad872c709af5335152464779d4ba7f5a73eb2b3
5
5
  SHA512:
6
- metadata.gz: 56d4e8c1739fe928d6db5f4b401665d484e132804b050a819cede53ed4ae09de8e473f82331c33a71fc58f000759f456b8cc04adfc583c013b142554d9946d77
7
- data.tar.gz: 5f919801c65fedf55aee44084ae326859714656ff750adb51085e9f3ae353d3ec1cb06ff90138705734987639357f548104c6491a86347b8715319bc1398baae
6
+ metadata.gz: 3bf9c9f3ce8e0bc1bf9c63cce519eda6fdd74eb660155cd7cb9cfe558f4db65486eded26ff15d209738503440aef4c4316f94795a3b9e14878effd20bcd3a93b
7
+ data.tar.gz: 01ccbe73e68064bf171389c2551a97451379248a7fe661c5c4d400d37b137f750194acb9067b17f102c00b806fef0c34539facc4b8c342851dfe87517177157a
@@ -2,6 +2,10 @@ module Magnetik
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Magnetik
4
4
 
5
+ initializer "magnetik.routes" do
6
+ Magnetik::Rails::Routes.install!
7
+ end
8
+
5
9
  config.generators do |g|
6
10
  g.test_framework :rspec
7
11
  g.fixture_replacement :factory_girl, dir: 'spec/factories'
@@ -0,0 +1,28 @@
1
+ module Magnetik
2
+ module Rails
3
+ class Routes
4
+ class Mapper
5
+ def initialize(mapping = Mapping.new)
6
+ @mapping = mapping
7
+ end
8
+
9
+ def map(&block)
10
+ self.instance_eval(&block) if block
11
+ @mapping
12
+ end
13
+
14
+ def controllers(controller_names = {})
15
+ @mapping.controllers.merge!(controller_names)
16
+ end
17
+
18
+ def skip_controllers(*controller_names)
19
+ @mapping.skips = controller_names
20
+ end
21
+
22
+ def as(alias_names = {})
23
+ @mapping.as.merge!(alias_names)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,29 @@
1
+ module Magnetik
2
+ module Rails
3
+ class Routes
4
+ class Mapping
5
+ attr_accessor :controllers, :as, :skips
6
+
7
+ def initialize
8
+ @controllers = {
9
+ credit_cards: 'magnetik/credit_cards',
10
+ }
11
+
12
+ @as = {}
13
+ @skips = []
14
+ end
15
+
16
+ def [](routes)
17
+ {
18
+ controllers: @controllers[routes],
19
+ as: @as[routes]
20
+ }
21
+ end
22
+
23
+ def skipped?(controller)
24
+ @skips.include?(controller)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,49 @@
1
+ require 'magnetik/rails/routes/mapping'
2
+ require 'magnetik/rails/routes/mapper'
3
+
4
+ module Magnetik
5
+ module Rails
6
+ class Routes
7
+ module Helper
8
+ def mount_magnetik(options = {}, &block)
9
+ Magnetik::Rails::Routes.new(self, &block).generate_routes!(options)
10
+ end
11
+ end
12
+
13
+ def self.install!
14
+ ActionDispatch::Routing::Mapper.send :include, Magnetik::Rails::Routes::Helper
15
+ end
16
+
17
+ attr_accessor :routes
18
+
19
+ def initialize(routes, &block)
20
+ @routes, @block = routes, block
21
+ end
22
+
23
+ def generate_routes!(options)
24
+ @mapping = Mapper.new.map(&@block)
25
+ routes.scope options[:scope] || '', as: 'magnetik' do
26
+ map_route(:credit_cards, :credit_card_routes)
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def map_route(name, method)
33
+ unless @mapping.skipped?(name)
34
+ send method, @mapping[name]
35
+ end
36
+ end
37
+
38
+ def credit_card_routes(mapping)
39
+ routes.resources(
40
+ :credit_cards,
41
+ controller: mapping[:controllers],
42
+ as: :credit_cards,
43
+ path: 'credit_cards',
44
+ only: [:index, :create, :update, :destroy],
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,3 +1,3 @@
1
1
  module Magnetik
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/magnetik.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'magnetik/engine'
2
+ require 'magnetik/rails/routes'
3
+
2
4
  require 'responders'
3
5
 
4
6
  module Magnetik
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magnetik
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Ivanopoulos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-22 00:00:00.000000000 Z
11
+ date: 2015-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -158,7 +158,6 @@ files:
158
158
  - app/use_cases/magnetik/update_credit_card.rb
159
159
  - app/use_cases/use_case.rb
160
160
  - app/views/layouts/magnetik/application.html.erb
161
- - config/routes.rb
162
161
  - lib/generators/active_record/magnetik_generator.rb
163
162
  - lib/generators/active_record/templates/migration_credit_cards.rb
164
163
  - lib/generators/active_record/templates/migration_customers.rb
@@ -168,6 +167,9 @@ files:
168
167
  - lib/magnetik.rb
169
168
  - lib/magnetik/acts_as_magnetik_customer.rb
170
169
  - lib/magnetik/engine.rb
170
+ - lib/magnetik/rails/routes.rb
171
+ - lib/magnetik/rails/routes/mapper.rb
172
+ - lib/magnetik/rails/routes/mapping.rb
171
173
  - lib/magnetik/version.rb
172
174
  - lib/tasks/magnetik_tasks.rake
173
175
  homepage: http://www.papercloud.com.au
data/config/routes.rb DELETED
@@ -1,3 +0,0 @@
1
- Magnetik::Engine.routes.draw do
2
- resources :credit_cards
3
- end