Class: Steep::Project::DSL::TargetDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/steep/project/dsl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, sources: [], libraries: [], signatures: [], ignored_sources: []) ⇒ TargetDSL

Returns a new instance of TargetDSL.



13
14
15
16
17
18
19
20
# File 'lib/steep/project/dsl.rb', line 13

def initialize(name, sources: [], libraries: [], signatures: [], ignored_sources: [])
  @name = name
  @sources = sources
  @libraries = libraries
  @signatures = signatures
  @ignored_sources = ignored_sources
  @vendor_dir = nil
end

Instance Attribute Details

#ignored_sourcesObject (readonly)

Returns the value of attribute ignored_sources.



9
10
11
# File 'lib/steep/project/dsl.rb', line 9

def ignored_sources
  @ignored_sources
end

#librariesObject (readonly)

Returns the value of attribute libraries.



7
8
9
# File 'lib/steep/project/dsl.rb', line 7

def libraries
  @libraries
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/steep/project/dsl.rb', line 5

def name
  @name
end

#no_builtinObject (readonly)

Returns the value of attribute no_builtin.



10
11
12
# File 'lib/steep/project/dsl.rb', line 10

def no_builtin
  @no_builtin
end

#signaturesObject (readonly)

Returns the value of attribute signatures.



8
9
10
# File 'lib/steep/project/dsl.rb', line 8

def signatures
  @signatures
end

#sourcesObject (readonly)

Returns the value of attribute sources.



6
7
8
# File 'lib/steep/project/dsl.rb', line 6

def sources
  @sources
end

#vendor_dirObject (readonly)

Returns the value of attribute vendor_dir.



11
12
13
# File 'lib/steep/project/dsl.rb', line 11

def vendor_dir
  @vendor_dir
end

Instance Method Details

#check(*args) ⇒ Object



31
32
33
# File 'lib/steep/project/dsl.rb', line 31

def check(*args)
  sources.push(*args)
end

#ignore(*args) ⇒ Object



35
36
37
# File 'lib/steep/project/dsl.rb', line 35

def ignore(*args)
  ignored_sources.push(*args)
end

#initialize_copy(other) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/steep/project/dsl.rb', line 22

def initialize_copy(other)
  @name = other.name
  @sources = other.sources.dup
  @libraries = other.libraries.dup
  @signatures = other.signatures.dup
  @ignored_sources = other.ignored_sources.dup
  @vendor_dir = other.vendor_dir
end

#library(*args) ⇒ Object



39
40
41
# File 'lib/steep/project/dsl.rb', line 39

def library(*args)
  libraries.push(*args)
end

#no_builtin!(value = true) ⇒ Object



57
58
59
# File 'lib/steep/project/dsl.rb', line 57

def no_builtin!(value = true)
  Steep.logger.error "`no_builtin!` in Steepfile is deprecated and ignored. Use `vendor` instead."
end

#signature(*args) ⇒ Object



43
44
45
# File 'lib/steep/project/dsl.rb', line 43

def signature(*args)
  signatures.push(*args)
end

#update(name: self.name, sources: self.sources, libraries: self.libraries, ignored_sources: self.ignored_sources, signatures: self.signatures) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/steep/project/dsl.rb', line 47

def update(name: self.name, sources: self.sources, libraries: self.libraries, ignored_sources: self.ignored_sources, signatures: self.signatures)
  self.class.new(
    name,
    sources: sources,
    libraries: libraries,
    signatures: signatures,
    ignored_sources: ignored_sources
  )
end

#vendor(dir = "vendor/sigs", stdlib: nil, gems: nil) ⇒ Object



61
62
63
64
65
66
67
68
69
70
# File 'lib/steep/project/dsl.rb', line 61

def vendor(dir = "vendor/sigs", stdlib: nil, gems: nil)
  if stdlib || gems
    @vendor_dir = [
      stdlib&.yield_self {|x| Pathname(x) },
      gems&.yield_self {|x| Pathname(x) }
    ]
  else
    @vendor_dir = Pathname(dir)
  end
end