source: code/trunk/vendor/github.com/yosssi/gcss/mixin_invocation.go@ 67

Last change on this file since 67 was 67, checked in by Izuru Yakumo, 23 months ago

Use vendored modules

Signed-off-by: Izuru Yakumo <yakumo.izuru@…>

File size: 1.4 KB
Line 
1package gcss
2
3import "io"
4
5// mixinInvocation represents a mixin invocation.
6type mixinInvocation struct {
7 elementBase
8 name string
9 paramValues []string
10}
11
12// WriteTo writes the selector to the writer.
13func (mi *mixinInvocation) WriteTo(w io.Writer) (int64, error) {
14 return 0, nil
15}
16
17// decsParams returns the mixin's declarations and params.
18func (mi *mixinInvocation) decsParams() ([]*declaration, map[string]string) {
19 md, ok := mi.Context().mixins[mi.name]
20
21 if !ok {
22 return nil, nil
23 }
24
25 params := make(map[string]string)
26
27 l := len(mi.paramValues)
28
29 for i, name := range md.paramNames {
30 if i < l {
31 params[name] = mi.paramValues[i]
32 }
33 }
34
35 return md.decs, params
36}
37
38// selsParams returns the mixin's selectors and params.
39func (mi *mixinInvocation) selsParams() ([]*selector, map[string]string) {
40 md, ok := mi.Context().mixins[mi.name]
41
42 if !ok {
43 return nil, nil
44 }
45
46 params := make(map[string]string)
47
48 l := len(mi.paramValues)
49
50 for i, name := range md.paramNames {
51 if i < l {
52 params[name] = mi.paramValues[i]
53 }
54 }
55
56 return md.sels, params
57}
58
59// newMixinInvocation creates and returns a mixin invocation.
60func newMixinInvocation(ln *line, parent element) (*mixinInvocation, error) {
61 name, paramValues, err := mixinNP(ln, false)
62
63 if err != nil {
64 return nil, err
65 }
66
67 return &mixinInvocation{
68 elementBase: newElementBase(ln, parent),
69 name: name,
70 paramValues: paramValues,
71 }, nil
72}
Note: See TracBrowser for help on using the repository browser.