Class: Shakapacker::DevServer

Inherits:
Object
  • Object
show all
Defined in:
lib/shakapacker/dev_server.rb

Constant Summary collapse

DEFAULT_ENV_PREFIX =
"SHAKAPACKER_DEV_SERVER".freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ DevServer

Returns a new instance of DevServer.



10
11
12
# File 'lib/shakapacker/dev_server.rb', line 10

def initialize(config)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/shakapacker/dev_server.rb', line 8

def config
  @config
end

Instance Method Details

#env_prefixObject



94
95
96
# File 'lib/shakapacker/dev_server.rb', line 94

def env_prefix
  config.dev_server.fetch(:env_prefix, DEFAULT_ENV_PREFIX)
end

#hmr?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/shakapacker/dev_server.rb', line 81

def hmr?
  fetch(:hmr)
end

#hostObject



25
26
27
# File 'lib/shakapacker/dev_server.rb', line 25

def host
  fetch(:host)
end

#host_with_portObject



73
74
75
# File 'lib/shakapacker/dev_server.rb', line 73

def host_with_port
  "#{host}:#{port}"
end

#https?Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/shakapacker/dev_server.rb', line 33

def https?
  value = fetch(:https)

  unless value.nil?
    puts "WARNING: `https: true` has been deprecated in favor of `server: 'https'`"
  end

  case value
  when true, "true", Hash
    true
  else
    false
  end
end

#inline_css?Boolean

Returns:

  • (Boolean)


85
86
87
88
89
90
91
92
# File 'lib/shakapacker/dev_server.rb', line 85

def inline_css?
  case fetch(:inline_css)
  when false, "false"
    false
  else
    true
  end
end

#portObject



29
30
31
# File 'lib/shakapacker/dev_server.rb', line 29

def port
  fetch(:port)
end

#pretty?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/shakapacker/dev_server.rb', line 77

def pretty?
  fetch(:pretty)
end

#protocolObject



67
68
69
70
71
# File 'lib/shakapacker/dev_server.rb', line 67

def protocol
  return "https" if server == "https" || https? == true

  "http"
end

#running?Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
23
# File 'lib/shakapacker/dev_server.rb', line 14

def running?
  if config.dev_server.present?
    Socket.tcp(host, port, connect_timeout: connect_timeout).close
    true
  else
    false
  end
rescue
  false
end

#serverObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/shakapacker/dev_server.rb', line 48

def server
  server_value = fetch(:server)
  server_type = server_value.is_a?(Hash) ? server_value[:type] : server_value

  return server_type if ["http", "https"].include?(server_type)

  return "http" if server_type.nil?

  puts <<~MSG
  WARNING:
  `server: #{server_type}` is not a valid configuration in Shakapacker.
  Falling back to default `server: http`.
  MSG

  "http"
rescue KeyError
  "http"
end