mercator_bechlem 0.0.1 → 0.1

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: 08f1ee4bf9cf90571f61c820d7289b1970c8ae25
4
- data.tar.gz: e8549552cd438d36e4bd415d4c3f9ffcb075cd55
3
+ metadata.gz: 7b418be9994e520a58f4ba2e64cdaa5965ec15cf
4
+ data.tar.gz: fa7c14413c5c0a58e3bd328aec3dbd1934cafc77
5
5
  SHA512:
6
- metadata.gz: 00644b6b5e5080d690f32e0702921edf9dd5224e753f339ce028e5b24e5b053d73471c07b472d88ab36d4432e5efb8b3091aef2448949aa25cda883de18eb8e0
7
- data.tar.gz: 3d2ab31058fc8634fdaa9cf3bedf708dd6a759122b0521a28d5c10105253e3db97f15a9f8ed4fc068af941cef1a5cf4d8441fb8aed4f3e5f7e30d961fbfc3f14
6
+ metadata.gz: 3290318d66ce4d7dcb4dda1b8e71a285135bc8b176b6efcde40dee4ad8aadc01edec048b16f248c871d4e48c2e3f0ecf4d7b8a31892a487b6d63bc42b2514a2d
7
+ data.tar.gz: b60572d25121097cf9da268c54819fdc472b3cde3560b6ce7e766da4a234a688041d80af097de4947fe29093d19f3d9515cf4fe33ac5ccd73ec7e7fbbe49a37e
@@ -0,0 +1,59 @@
1
+ class ConsumablesController < ApplicationController
2
+
3
+ hobo_controller
4
+
5
+ def products
6
+ @printer = params[:id]
7
+ @printer ||= try_to{ MercatorBechlem::VitemPrinter.where(brand: "HP", DESCRIPTION: params[:printer]).first.IDITEM }
8
+
9
+ if @printer
10
+ icecat_products = MercatorBechlem::Vitem2item.where(IDITEM: @printer )
11
+ @printer_description = MercatorBechlem::VitemPrinter.where(IDITEM: @printer).first.DESCRIPTION
12
+ alternative_numbers = icecat_products.collect { |product| "#{product.ARTNR.gsub("\s", '')}" }.uniq
13
+ # gsub removes whitespace characters, compact removes nil elements
14
+ @products = Inventory.where(alternative_number: alternative_numbers).*.product.uniq
15
+ @active_products = @products.find_all{|product| product.state == "active" }
16
+ end
17
+ end
18
+
19
+ def printers
20
+ @printerserie = params[:id]
21
+
22
+ @printer_series = MercatorBechlem::VitemPrinter.where(brand: "HP")
23
+ .where.not(printerseries: nil)
24
+ .order(PRINTERSERIES: :asc)
25
+ @printer_series_names = @printer_series.*.PRINTERSERIES.uniq
26
+
27
+ if @printerserie == "All"
28
+ @printer_names = MercatorBechlem::VitemPrinter.where(brand: "HP")
29
+ .order(DESCRIPTION: :asc).*
30
+ .DESCRIPTION
31
+ .uniq
32
+ else
33
+ @printer_names = MercatorBechlem::VitemPrinter.where(brand: "HP", printerseries: @printerserie)
34
+ .order(DESCRIPTION: :asc).*
35
+ .DESCRIPTION.uniq
36
+ @printers = MercatorBechlem::VitemPrinter.where(brand: "HP", printerseries: @printerserie)
37
+ .select("CATEGORY, BRAND, DESCRIPTION, IDITEM")
38
+ .order(DESCRIPTION: :asc)
39
+ end
40
+ end
41
+
42
+ def category
43
+ category_id = (params[:id] == "All") ? "145200000" : params[:id]
44
+ @category = MercatorBechlem::Vcategory.where(IDCATEGORY: category_id).first
45
+ @ancestors = try_to { @category.ancestors }
46
+ @children = @category ? @category.children : MercatorBechlem::Vcategory.ivellio_top_categories
47
+
48
+ @printers = MercatorBechlem::VitemSupply.for_category_id(params[:id])
49
+
50
+ if @printers && @category && @category.parent
51
+ printer_alternative_numbers = @printers.collect { |printer| "#{printer.ARTNR.gsub("\s", '')}" }
52
+ .uniq
53
+ @products = Inventory.where(alternative_number: printer_alternative_numbers).*
54
+ .product
55
+ .uniq
56
+ @active_products = @products.find_all{|product| product.state == "active" }
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,43 @@
1
+ require 'open-uri'
2
+ require 'zip/zip'
3
+
4
+ module MercatorBechlem
5
+ class Access
6
+
7
+ attr_accessor(:user, :password, :vendor, :lang, :typ, :base_uri, :full_index_url, :daily_index_url, :open_uri_options)
8
+
9
+ USER = "MB_Daten_Ivellio-Vellin"
10
+ PASSWORD = "247r9fhs47hefe4"
11
+ URL = "ftp://" + USER + ":" + PASSWORD + "@ww2.kompashop.de/Ivellio_Vellin.zip"
12
+ DESTINATION = Rails.root.join("vendor","bechlem")
13
+ TABLES = ["BRAND", "DESCRIPTOR", "ITEM", "IDENTIFIER", "QUALIFIER", "ITEM2ITEM"]
14
+
15
+ # --- Class Methods --- #
16
+
17
+ def self.download_index
18
+
19
+ io = open( URL, {"Accept-Encoding" => "gzip"})
20
+ Zip::ZipFile.open(io) do |zip_file|
21
+ zip_file.each do |f|
22
+ f_path=File.join(DESTINATION, f.name)
23
+ FileUtils.mkdir_p(File.dirname(f_path))
24
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
25
+ end
26
+ end
27
+ io.close
28
+ end
29
+
30
+ def self.delete_first_lines
31
+ TABLES.each do |table|
32
+ filename = DESTINATION.join(table + '.CSV')
33
+ File.open(filename) do |f|
34
+ f.readline
35
+ File.open(filename.to_s + ".tmp", 'w') do |f2|
36
+ f2 << f.read
37
+ end
38
+ end
39
+ FileUtils.mv(filename.to_s + ".tmp", filename)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,26 @@
1
+ module MercatorBechlem
2
+ class Base < ActiveRecord::Base
3
+
4
+ establish_connection(:bechlem)
5
+ self.abstract_class = true
6
+ self.connection_config["local_infile"] = true # otherwise imporing from files is prohibitied
7
+ self.connection_config["strict"] = false # otherwise empty nil-values are not allowed in csv.-files
8
+
9
+ def self.update_from_download
10
+ tables = ["BRAND", "DESCRIPTOR", "ITEM", "IDENTIFIER", "QUALIFIER", "ITEM2ITEM"]
11
+ tables.each do |table|
12
+ self.connection.execute("TRUNCATE " + table + ";")
13
+ records_array = self.connection.execute(
14
+ "LOAD DATA LOCAL INFILE '" + Access::DESTINATION.to_s + "/" + table +
15
+ ".CSV' REPLACE INTO TABLE " + table + " FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n';")
16
+ end
17
+ end
18
+
19
+ def self.copy_views_to_tables
20
+ self.connection.execute("TRUNCATE item2item_temp;")
21
+ self.connection.execute("TRUNCATE item_printer_temp;")
22
+ self.connection.execute("INSERT IGNORE INTO item_printer_temp SELECT * FROM VITEM_PRINTER;")
23
+ self.connection.execute("INSERT IGNORE INTO item2item_temp SELECT * FROM VITEM2ITEM;")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ module MercatorBechlem
2
+ class Vbrand < Base
3
+
4
+ self.table_name = "vbrand"
5
+ self.primary_key = "IDBRAND"
6
+
7
+ # --- Instance Methods --- #
8
+ def readonly? # prevents unintentional changes
9
+ true
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ module MercatorBechlem
2
+ class Vcategory < Base
3
+
4
+ self.table_name = "VCATEGORY"
5
+ self.primary_key = "IDCATEGORY"
6
+
7
+ def self.ivellio_top_categories
8
+ Vcategory.find("145210000").children + Vcategory.find("145220000").children
9
+ end
10
+
11
+ def parent
12
+ cat_id = self.IDCATEGORY.to_s
13
+ parent_idCategory = cat_id[0..(9 - (cat_id.count("0") + 2))].ljust(9, '0')
14
+ if ["145200000", "145000000"].include? parent_idCategory
15
+ return nil
16
+ else
17
+ return Vcategory.find(parent_idCategory)
18
+ end
19
+ end
20
+
21
+ def children
22
+ Vcategory.find_by_sql ["SELECT c.* FROM VCATEGORY c, ITEM2ITEM i2i WHERE i2i.idItem = c.idCategory AND i2i.idParItem = ? ORDER by idCategory", id ]
23
+ end
24
+
25
+ def ancestors
26
+ ancestors = self.parents.reverse
27
+ end
28
+
29
+ def parents
30
+ [self.parent] + parent.parents.to_a if self.parent
31
+ end
32
+
33
+ # --- Instance Methods --- #
34
+ def readonly? # prevents unintentional changes
35
+ true
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,12 @@
1
+ module MercatorBechlem
2
+ class Vdescriptor < Base
3
+
4
+ self.table_name = "vdescriptor"
5
+ self.primary_key = "IDITEM"
6
+
7
+ # --- Instance Methods --- #
8
+ def readonly? # prevents unintentional changes
9
+ true
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module MercatorBechlem
2
+ class Videntifier < Base
3
+
4
+ self.table_name = "videntifier"
5
+ self.primary_key = "IDITEM"
6
+
7
+ # --- Instance Methods --- #
8
+ def readonly? # prevents unintentional changes
9
+ true
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module MercatorBechlem
2
+ class Vitem < Base
3
+
4
+ self.table_name = "vitem"
5
+ self.primary_key = "IDITEM"
6
+ has_many :item2items, :class_name => "Vitem2item", :foreign_key => "IDITEM"
7
+
8
+ # --- Instance Methods --- #
9
+ def readonly? # prevents unintentional changes
10
+ true
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module MercatorBechlem
2
+ class Vitem2item < Base
3
+
4
+ self.table_name = "item2item_temp"
5
+ self.primary_key = "IDITEM"
6
+
7
+ belongs_to :item, :class_name => "Vitem", :primary_key => "IDITEM"
8
+ belongs_to :part_item, :class_name => "Vitem", :primary_key => "IDPARTITEM"
9
+
10
+ # --- Instance Methods --- #
11
+ def readonly? # prevents unintentional changes
12
+ true
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module MercatorBechlem
2
+ class VitemMedia < Base
3
+
4
+ self.table_name = "vitem_media"
5
+ self.primary_key = "IDITEM"
6
+
7
+ # --- Instance Methods --- #
8
+ def readonly? # prevents unintentional changes
9
+ true
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module MercatorBechlem
2
+ class VitemPrinter < Base
3
+
4
+ self.table_name = "item_printer_temp"
5
+ self.primary_key = "IDITEM"
6
+
7
+ # --- Instance Methods --- #
8
+ def readonly? # prevents unintentional changes
9
+ true
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ module MercatorBechlem
2
+ class VitemSupply < Base
3
+
4
+ self.table_name = "VITEM_SUPPLY"
5
+ self.primary_key = "IDITEM"
6
+
7
+ def self.for_category_id(category_id )
8
+ cat_id = category_id.to_s.gsub("0", "")
9
+ self.where(brand: "HP").where("idCategory like ?", "#{cat_id}%").order(artnr: :asc)
10
+ end
11
+
12
+ # --- Instance Methods --- #
13
+ def readonly? # prevents unintentional changes
14
+ true
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ module MercatorBechlem
2
+ class Vqualifier < Base
3
+
4
+ self.table_name = "VQUALIFIER"
5
+
6
+ # --- Instance Methods --- #
7
+ def readonly? # prevents unintentional changes
8
+ true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,59 @@
1
+ <page title="Home">
2
+
3
+ <body: class="front-page"/>
4
+
5
+ <content:>
6
+ <header class="content-header">
7
+ <p>
8
+ <if test="&@category"> <t key="mercator.you_are_here" />:
9
+ <repeat with="&@ancestors">
10
+ <a href="/consumables/#{this.IDCATEGORY}/category"><view:DESCRIPTION/></a> /
11
+ </repeat>
12
+ <view with="&@category.DESCRIPTION"/>
13
+ </if>
14
+ </p>
15
+ <if test="&@category">
16
+ <h1>
17
+ <t key="mercator.consumeables" />
18
+ <t key="mercator.in_the_category" />
19
+ <view with="&@category.DESCRIPTION"/>
20
+ </h1>
21
+ </if>
22
+ <else>
23
+ <h1>
24
+ <t key="mercator.consumeables" />
25
+ <t key="mercator.in_all_categories" />
26
+ </h1>
27
+ </else>
28
+ </header>
29
+
30
+ <section class="content-body">
31
+ <p>
32
+ <if test="&@children"><t key="mercator.subcategories" />:
33
+ <repeat with="&@children">
34
+ <a href="/consumables/#{this.IDCATEGORY}/category"><view:DESCRIPTION/></a>
35
+ <%= last_item? ? "" : " - " %>
36
+ </repeat>
37
+ </if>
38
+ </p>
39
+
40
+ <if test="&@active_products">
41
+ <%= @active_products.in_groups_of(2) do |group| %>
42
+ <div class="row-fluid">
43
+ <div repeat="&group" class="span6">
44
+ <if><card/></if>
45
+ </div>
46
+ </div>
47
+ <% end %>
48
+ </if>
49
+ <else>
50
+ <if test="&@category.parent">
51
+ <p><t key="mercator.no_products_available" /></p>
52
+ </if>
53
+ <else>
54
+ <p><t key="mercator.select_a_category" /></p>
55
+ </else>
56
+ </else>
57
+ </section>
58
+ </content:>
59
+ </page>
@@ -0,0 +1,71 @@
1
+ <page title="Home">
2
+
3
+ <body: class="front-page"/>
4
+
5
+ <content:>
6
+ <header class="content-header">
7
+ <h1>
8
+ <t key="mercator.consumeables" /> HP <t key="mercator.printer" />
9
+ </h1>
10
+ </header>
11
+
12
+ <section class="content-body">
13
+ <p>
14
+ <t key="mercator.consumeable_search_help" />
15
+ </p>
16
+
17
+ <h2><t key="mercator.printer_series" /></h2>
18
+ <p>
19
+ <if test="&@printerserie != 'All' ">
20
+ <a href="/consumables/">
21
+ <t key="mercator.remove_filter" />
22
+ </a>
23
+ </if>
24
+ </p>
25
+
26
+ <p>
27
+ <repeat with="&@printer_series_names">
28
+ <if test="&@printerserie == this">
29
+ <view with="&this" />
30
+ </if>
31
+ <else>
32
+ <a href="/consumables/#{u this}/printers">
33
+ <view/>
34
+ </a>
35
+ </else>
36
+
37
+ <%= last_item? ? "" : " - "%>
38
+ </repeat>
39
+ </p>
40
+
41
+ <if test="&@printers">
42
+ <h2>
43
+ <t key="mercator.printer" />
44
+ </h2>
45
+ </if>
46
+
47
+ <form action="/consumables/products" method="post">
48
+ <h3>
49
+ <t key="mercator.identifier" />
50
+ </h3>
51
+ <autocomplete:printer name="printer"
52
+ with="&MercatorBechlem::VitemPrinter.new()"
53
+ source="&@printer_names"/>
54
+ <submit label="&t(hobo.live_search.label)"/>
55
+ </form>
56
+
57
+ <p>
58
+
59
+ <repeat with="&@printers">
60
+ <span class="underline">
61
+ <a href="/consumables/#{this.IDITEM}/products">
62
+ <view:DESCRIPTION />
63
+ </a>
64
+ </span>
65
+ <%= last_item? ? "" : " - "%>
66
+ </repeat>
67
+
68
+ </p>
69
+ </section>
70
+ </content:>
71
+ </page>
@@ -0,0 +1,37 @@
1
+ <page title="Home">
2
+
3
+ <body: class="front-page"/>
4
+
5
+ <content:>
6
+ <header class="content-header">
7
+ <if test="&@printer_description">
8
+ <h1><t key="mercator.consumeables" /> <view with="&@printer_description" /></h1>
9
+ </if>
10
+ <else>
11
+ <h2><t key="mercator.no_product_with_this_name" /></h2>
12
+ </else>
13
+ </header>
14
+
15
+ <section class="content-body">
16
+ <if test="&@active_products">
17
+ <%= @active_products.in_groups_of(2) do |group| %>
18
+ <div class="row-fluid">
19
+ <div repeat="&group" class="span6">
20
+ <if><card/></if>
21
+ </div>
22
+ </div>
23
+ <% end %>
24
+ </if>
25
+ <else>
26
+ <p><t key="mercator.no_products_available" /></p>
27
+ </else>
28
+ </section>
29
+
30
+ <p>
31
+ <a href="/consumables" class ="btn btn-primary">
32
+ <t key="mercator.goto_search" />
33
+ </a>
34
+ </p>
35
+ </content:>
36
+
37
+ </page>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><app-name/>Mercator Bechlem</title>
5
+ <%= stylesheet_link_tag "mercator_bechlem/application", media: "all" %>
6
+ <%= javascript_include_tag "mercator_bechlem/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
data/config/routes.rb CHANGED
@@ -1,2 +1,8 @@
1
- MercatorBechlem::Engine.routes.draw do
2
- end
1
+ Mercator::Application.routes.draw do
2
+ get 'consumables', to: redirect('/consumables/All/printers/'), :as => 'consumables'
3
+ get 'consumables/:id/products/' => "consumables#products", :as => 'products_consumables'
4
+ post 'consumables/products/' => "consumables#products"
5
+ get 'consumables/:id/printers/' => "consumables#printers", :as => 'printers_consumables'
6
+
7
+ get 'consumables/:id/category/' => "consumables#category", :as => 'category_consumables'
8
+ end
@@ -1,3 +1,3 @@
1
1
  module MercatorBechlem
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1"
3
3
  end
@@ -1,4 +1,20 @@
1
- # desc "Explaining what the task does"
2
- # task :mercator_bechlem do
3
- # # Task goes here
4
- # end
1
+ namespace :bechlem do
2
+ # starten als: 'bundle exec rake bechlem:import'
3
+ # in Produktivumgebungen: 'bundle exec rake bechlem:import RAILS_ENV=production'
4
+ desc 'Import crosselling data from Bechlem'
5
+ task :import => :environment do
6
+
7
+ ::JobLogger.info("=" * 50)
8
+ ::JobLogger.info("Started Job: bechlem:import")
9
+ MercatorBechlem::Access.download_index
10
+ ::JobLogger.info("Bechlem Index downloaded (1/4) ...")
11
+ MercatorBechlem::Access.delete_first_lines
12
+ ::JobLogger.info("... first lines deleted (2/4) ...")
13
+ MercatorBechlem::Base.update_from_download
14
+ ::JobLogger.info("... tables imported (3/4) ...")
15
+ MercatorBechlem::Base.copy_views_to_tables
16
+ ::JobLogger.info("... views copied to tables (4/4)")
17
+ ::JobLogger.info("Finished Job: bechlem:import")
18
+ ::JobLogger.info("=" * 50)
19
+ end
20
+ end
metadata CHANGED
@@ -1,35 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mercator_bechlem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: '0.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Haslinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-17 00:00:00.000000000 Z
11
+ date: 2014-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
- - - '>='
21
- - !ruby/object:Gem::Version
22
- version: 4.0.3
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '4.0'
30
- - - '>='
27
+ - !ruby/object:Gem::Dependency
28
+ name: mysql2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
31
39
  - !ruby/object:Gem::Version
32
- version: 4.0.3
40
+ version: '0'
33
41
  description: MercatorMesonic interfaces between Mercator and Bechlem in the realm
34
42
  of product cross selling information.
35
43
  email:
@@ -43,9 +51,24 @@ files:
43
51
  - Rakefile
44
52
  - app/assets/javascripts/mercator_bechlem/application.js
45
53
  - app/assets/stylesheets/mercator_bechlem/application.css
54
+ - app/controllers/consumables_controller.rb
46
55
  - app/controllers/mercator_bechlem/application_controller.rb
47
- - app/helpers/mercator_bechlem/application_helper.rb
48
- - app/views/layouts/mercator_bechlem/application.html.erb
56
+ - app/models/mercator_bechlem/access.rb
57
+ - app/models/mercator_bechlem/base.rb
58
+ - app/models/mercator_bechlem/vbrand.rb
59
+ - app/models/mercator_bechlem/vcategory.rb
60
+ - app/models/mercator_bechlem/vdescriptor.rb
61
+ - app/models/mercator_bechlem/videntifier.rb
62
+ - app/models/mercator_bechlem/vitem.rb
63
+ - app/models/mercator_bechlem/vitem2item.rb
64
+ - app/models/mercator_bechlem/vitem_media.rb
65
+ - app/models/mercator_bechlem/vitem_printer.rb
66
+ - app/models/mercator_bechlem/vitem_supply.rb
67
+ - app/models/mercator_bechlem/vqualifier.rb
68
+ - app/views/consumables/category.dryml
69
+ - app/views/consumables/printers.dryml
70
+ - app/views/consumables/products.dryml
71
+ - app/views/mercator_bechlem/layouts/mercator_bechlem/application.html.erb
49
72
  - config/routes.rb
50
73
  - lib/mercator_bechlem.rb
51
74
  - lib/mercator_bechlem/engine.rb
@@ -95,12 +118,12 @@ require_paths:
95
118
  - lib
96
119
  required_ruby_version: !ruby/object:Gem::Requirement
97
120
  requirements:
98
- - - '>='
121
+ - - ">="
99
122
  - !ruby/object:Gem::Version
100
123
  version: '0'
101
124
  required_rubygems_version: !ruby/object:Gem::Requirement
102
125
  requirements:
103
- - - '>='
126
+ - - ">="
104
127
  - !ruby/object:Gem::Version
105
128
  version: '0'
106
129
  requirements: []
@@ -1,4 +0,0 @@
1
- module MercatorBechlem
2
- module ApplicationHelper
3
- end
4
- end
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>MercatorBechlem</title>
5
- <%= stylesheet_link_tag "mercator_bechlem/application", media: "all" %>
6
- <%= javascript_include_tag "mercator_bechlem/application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>