magnetik 0.0.1 → 0.0.3

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 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