Class: Cassie::Statements::Statement::Assignment

Inherits:
Object
  • Object
show all
Defined in:
lib/cassie/statements/statement/assignment.rb

Overview

set “username = ?”, value: :username

set :favs, term: 'favs + ?', value: "{ 'movie' : 'Cassablanca' }"
set :username

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, identifier, value_method, opts = {}) ⇒ Assignment

Returns a new instance of Assignment.

[View source]

13
14
15
16
17
18
19
# File 'lib/cassie/statements/statement/assignment.rb', line 13

def initialize(source, identifier, value_method, opts={})
  @source = source
  @identifier = identifier
  @value_method = value_method
  @enabled = opts.has_key?(:if) ? source_eval(opts[:if]) : true
  @term = opts.has_key?(:term) ? source_eval(opts[:term]) : "?"
end

Instance Attribute Details

#enabledObject (readonly)


8
9
10
# File 'lib/cassie/statements/statement/assignment.rb', line 8

def enabled
  @enabled
end

#identifierObject (readonly)


8
9
10
# File 'lib/cassie/statements/statement/assignment.rb', line 8

def identifier
  @identifier
end

#sourceObject (readonly)


8
9
10
# File 'lib/cassie/statements/statement/assignment.rb', line 8

def source
  @source
end

#value_methodObject (readonly)


8
9
10
# File 'lib/cassie/statements/statement/assignment.rb', line 8

def value_method
  @value_method
end

Instance Method Details

#argumentObject

[View source]

38
39
40
# File 'lib/cassie/statements/statement/assignment.rb', line 38

def argument
  value if argument?
end

#argument?Boolean

Returns:

  • (Boolean)
[View source]

34
35
36
# File 'lib/cassie/statements/statement/assignment.rb', line 34

def argument?
  positional?
end

#enabled?Boolean

Returns:

  • (Boolean)
[View source]

30
31
32
# File 'lib/cassie/statements/statement/assignment.rb', line 30

def enabled?
  !!enabled
end

#positional?Boolean

Returns:

  • (Boolean)
[View source]

46
47
48
# File 'lib/cassie/statements/statement/assignment.rb', line 46

def positional?
  term.to_s.include?("?")
end

#termObject

[View source]

42
43
44
# File 'lib/cassie/statements/statement/assignment.rb', line 42

def term
  @term if enabled?
end

#to_update_cqlObject

[View source]

50
51
52
# File 'lib/cassie/statements/statement/assignment.rb', line 50

def to_update_cql
  "#{identifier} = #{term}" if enabled?
end

#valueObject

[View source]

25
26
27
28
# File 'lib/cassie/statements/statement/assignment.rb', line 25

def value
  return @value if defined?(@value)
  @value = source.send(value_method)
end