Class: Apitools::Middleware::Spec

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/apitools/middleware/spec.rb

Constant Summary collapse

MANIFEST_FILE =

should be apitools.json

'apitools.json'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repo, path) ⇒ Spec

Returns a new instance of Spec.



16
17
18
19
20
21
# File 'lib/apitools/middleware/spec.rb', line 16

def initialize(repo, path)
  @repo = repo
  pathname = Pathname(path)
  @path = pathname.dirname
  @manifest_path = pathname.basename || MANIFEST_FILE
end

Instance Attribute Details

#manifest_pathObject (readonly)

Returns the value of attribute manifest_path.



11
12
13
# File 'lib/apitools/middleware/spec.rb', line 11

def manifest_path
  @manifest_path
end

#pathObject (readonly)

Returns the value of attribute path.



11
12
13
# File 'lib/apitools/middleware/spec.rb', line 11

def path
  @path
end

#repoObject (readonly)

Returns the value of attribute repo.



11
12
13
# File 'lib/apitools/middleware/spec.rb', line 11

def repo
  @repo
end

Instance Method Details

#codeObject



31
32
33
# File 'lib/apitools/middleware/spec.rb', line 31

def code
  @code ||= load_code
end

#endpointObject



35
36
37
# File 'lib/apitools/middleware/spec.rb', line 35

def endpoint
  Array(endpoints).first
end

#filesObject



39
40
41
# File 'lib/apitools/middleware/spec.rb', line 39

def files
  Array(manifest.files)
end

#manifestObject



27
28
29
# File 'lib/apitools/middleware/spec.rb', line 27

def manifest
  @manifest ||= Manifest.parse(load_manifest)
end

#manifest=(json) ⇒ Object



23
24
25
# File 'lib/apitools/middleware/spec.rb', line 23

def manifest=(json)
  @manifest = Manifest.parse(json)
end

#valid?Boolean

Returns:

  • (Boolean)


49
50
51
52
53
54
55
# File 'lib/apitools/middleware/spec.rb', line 49

def valid?
  required_attributes = [name, path, author, endpoint, version, description]
  return unless required_attributes.all?

  lua_files = Array(files).map { |file| content(file) }
  lua_files.none?{ |file| !file || file.nil? || file.empty? }
end

#versionObject



43
44
45
46
47
# File 'lib/apitools/middleware/spec.rb', line 43

def version
  Semantic::Version.new(manifest.version)
rescue ArgumentError
  false
end