marfa 0.4.3 → 0.4.4

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: bf0393e4cc01dbc36e6b34ddebe89f9f400e0824
4
- data.tar.gz: c7844ca68f4144af82d0358ba888a884e2ae16a4
3
+ metadata.gz: 420b662b0acdf78f6d3ebe7e83090b88070e386e
4
+ data.tar.gz: 47995fa713da2428308e8338028ae5ba1636347e
5
5
  SHA512:
6
- metadata.gz: 40ee5fcaf70cc12dd9376bc412c4a2dfa63279aeda149779b6d76e5ce9d7b8bde14972412d7bf677da767d08fa81f9aa00539f94e3eea9cb844848d1e7d96e5e
7
- data.tar.gz: efd735356fd54a436ddacbb8be4388f61b8ffc86a34cea8600dd42f528591bfbe56e502b3432a3c2dae1669cb6e28cb478e81cf8e142f3d7221c49e4b4a2d812
6
+ metadata.gz: c6823213e1c7b20a210d4f134bfc3e2dc43bf713a3ec4fcc7fbe6207dc7487df43844bf488826f944a2ae14718f507ee4b0024808eae579152abb6bb9b6ee382
7
+ data.tar.gz: cbd05e9535d0ba4b9684271452336d53ac86fde2d4fb1f19de8fac5fca5ece648e30a732174771bb0e314c0a9850060414cf38b22de76e6dd90435d0f8d9b307
@@ -0,0 +1,10 @@
1
+ # Additional Numeric functionality
2
+ class Numeric
3
+ # Convert numeric price to string price with preferred view
4
+ # @example
5
+ # 1042.42.to_price!
6
+ # @return [String]
7
+ def to_price!
8
+ self.to_s.to_price!
9
+ end
10
+ end
@@ -38,4 +38,15 @@ class String
38
38
  self.gsub(/<\/?[^>]*>/, '') # unless self.nil?
39
39
  end
40
40
 
41
+ # Convert string price to preferred view
42
+ # @example
43
+ # "1042.42".to_price!
44
+ # @return [String]
45
+ def to_price!
46
+ # self.split('.') divides string into substring with '.' delimiter and returning array of this substrings
47
+ # .first returns the first element of the array
48
+ # .reverse returns a new string with the characters from str in reverse order
49
+ # .gsub(pattern, replacement) returns a copy of str with the all occurrences of pattern substituted for the second argument
50
+ self.split('.').first.reverse.gsub(/...(?=.)/, '\&;psniht&').reverse
51
+ end
41
52
  end
@@ -0,0 +1,44 @@
1
+ module Rack
2
+ class AppMapper
3
+ NOT_FOUND = [404, { CONTENT_TYPE => 'text/plain' }, []].freeze
4
+
5
+ attr_reader :apps
6
+
7
+ def initialize(apps, app_map = {}, catch = [404, 405])
8
+ @apps = []
9
+ @has_app = {}
10
+ @app_map = app_map
11
+
12
+ apps.each { |app| add app }
13
+
14
+ @catch = {}
15
+ [*catch].each { |status| @catch[status] = true }
16
+ end
17
+
18
+ def call(env)
19
+ res = NOT_FOUND
20
+
21
+ @app_map.keys.each do |key|
22
+ uri = env['PATH_INFO']
23
+ next unless uri == key.to_s || uri.include?(key.to_s)
24
+
25
+ app = @app_map[key]
26
+ res = app.call(env)
27
+ break
28
+ end
29
+
30
+ res
31
+ end
32
+
33
+ def add(app)
34
+ @has_app[app] = true
35
+ @apps << app
36
+ end
37
+
38
+ def include?(app)
39
+ @has_app.include? app
40
+ end
41
+
42
+ alias << add
43
+ end
44
+ end
data/lib/marfa.rb CHANGED
@@ -7,6 +7,7 @@ require 'marfa/helpers/http/vary'
7
7
  require 'marfa/helpers/scss'
8
8
  require 'marfa/helpers/style'
9
9
  require 'marfa/helpers/email'
10
+ require 'marfa/rack/app_mapper'
10
11
  require 'marfa/controllers'
11
12
  require 'marfa/controllers/base_controller'
12
13
  require 'marfa/controllers/css_controller'
data/marfa.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'marfa'
6
- s.version = '0.4.3'
6
+ s.version = '0.4.4'
7
7
  s.required_ruby_version = '>= 2.3.0'
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.date = Time.now.strftime('%Y-%m-%d')
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.license = 'MIT'
19
19
 
20
20
  s.add_dependency('haml', '~> 4.0', '>= 4.0.7')
21
- s.add_dependency('puma', '~> 3.7')
21
+ s.add_dependency('puma', '3.6.2')
22
22
  s.add_dependency('rack_csrf', '~> 2.6')
23
23
  s.add_dependency('rake', '~> 12')
24
24
  s.add_dependency('redis', '~> 3.3', '>= 3.3.3')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marfa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Krechetov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-05-03 00:00:00.000000000 Z
13
+ date: 2017-05-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: haml
@@ -36,16 +36,16 @@ dependencies:
36
36
  name: puma
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: '3.7'
41
+ version: 3.6.2
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: '3.7'
48
+ version: 3.6.2
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rack_csrf
51
51
  requirement: !ruby/object:Gem::Requirement
@@ -328,6 +328,7 @@ files:
328
328
  - lib/marfa/controllers/css_controller.rb
329
329
  - lib/marfa/css_version.rb
330
330
  - lib/marfa/file_templates.rb
331
+ - lib/marfa/helpers/classes/numeric.rb
331
332
  - lib/marfa/helpers/classes/string.rb
332
333
  - lib/marfa/helpers/controller.rb
333
334
  - lib/marfa/helpers/email.rb
@@ -338,6 +339,7 @@ files:
338
339
  - lib/marfa/models/api_model.rb
339
340
  - lib/marfa/models/base_dto.rb
340
341
  - lib/marfa/models/db_model.rb
342
+ - lib/marfa/rack/app_mapper.rb
341
343
  - lib/marfa/version.rb
342
344
  - marfa.gemspec
343
345
  - spec/cache_spec.rb