obs_deck 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4ff22ef1885b441381f07ae30f4ca57c6330246cc924cac9f4b016d0388b0698
4
+ data.tar.gz: c9433789e62c2a97b27ce6961fc0ce858f742549033b3505fc14fca5c051e62f
5
+ SHA512:
6
+ metadata.gz: 6e2490cf9d50bb594118478c909b3b1f7ee60df5da3d0de2b534d37c4c2f5de90f405a7934de561e3dc7a54a0c00eea7b05281a3176c9618c84545366c41b4d6
7
+ data.tar.gz: 03d181f2963d2220eb240f652135fc116d7423d43a59cc9e508fa76db3e90ec774b0d14b3a8652d2a902cdbbce650e62462c64f56bafd4f9b65efcea8c21b068
data/exe/obs_deck ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'obs_deck'
4
+
5
+ ObsDeck.start_menu
@@ -0,0 +1,199 @@
1
+ Abandon normal instruments
2
+ Accept advice
3
+ Accretion
4
+ A line has two sides
5
+ Allow an easement (an easement is the abandonment of a stricture)
6
+ Are there sections? Consider transitions
7
+ Ask people to work against their better judgement
8
+ Ask your body
9
+ Assemble some of the instruments in a group and treat the group
10
+ Balance the consistency principle with the inconsistency principle
11
+ Be dirty
12
+ Breathe more deeply
13
+ Bridges -build -burn
14
+ Cascades
15
+ Change instrument roles
16
+ Change nothing and continue with immaculate consistency
17
+ Children's voices -speaking -singing
18
+ Cluster analysis
19
+ Consider different fading systems
20
+ Consult other sources -promising -unpromising
21
+ Convert a melodic element into a rhythmic element
22
+ Courage!
23
+ Cut a vital connection
24
+ Decorate, decorate
25
+ Define an area as 'safe' and use it as an anchor
26
+ Destroy -nothing -the most important thing
27
+ Discard an axiom
28
+ Disconnect from desire
29
+ Discover the recipes you are using and abandon them
30
+ Distorting time
31
+ Do nothing for as long as possible
32
+ Don't be afraid of things because they're easy to do
33
+ Don't be frightened of cliches
34
+ Don't be frightened to display your talents
35
+ Don't break the silence
36
+ Don't stress one thing more than another
37
+ Do something boring
38
+ Do the washing up
39
+ Do the words need changing?
40
+ Do we need holes?
41
+ Emphasise differences
42
+ Emphasise repetitions
43
+ Emphasise the flaws
44
+ Feedback recordings into an acoustic situation
45
+ Fill every beat with something
46
+ Get your neck massaged
47
+ Ghost echoes
48
+ Give the game away
49
+ Give way to your worst impulse
50
+ Go slowly all the way round the outside
51
+ Honor thy error as a hidden intention
52
+ How would you have done it?
53
+ Humanise something free of error
54
+ Imagine the music as a moving chain or caterpillar
55
+ Imagine the music as a set of disconnected events
56
+ Infinitesimal gradations
57
+ Into the impossible
58
+ Is it finished?
59
+ Is the tuning appropriate?
60
+ Just carry on
61
+ Left channel, right channel, centre channel
62
+ Listen in total darkness, or in a very large room, very quietly
63
+ Listen to the quiet voice
64
+ Look at a very small object, look at its centre
65
+ Look at the order in which you do things
66
+ Look closely at the most embarrassing details and amplify them
67
+ Lowest common denominator check -single beat -single note -single riff
68
+ Make a blank valuable by putting it in an exquisite frame
69
+ Make an exhaustive list of everything you might do and do the last thing on the list
70
+ Make a sudden, destructive unpredictable action; incorporate
71
+ Mechanicalise something idiosyncratic
72
+ Mute and continue
73
+ Only one element of each kind
74
+ (Organic) machinery
75
+ Overtly resist change
76
+ Put in earplugs
77
+ Remove ambiguities and convert to specifics
78
+ Remove specifics and convert to ambiguities
79
+ Repetition is a form of change
80
+ Reverse
81
+ Short circuit (example; a man eating peas with the idea that they will improve his virility shovels them straight into his lap)
82
+ Shut the door and listen from outside
83
+ Simple subtraction
84
+ Spectrum analysis
85
+ Take a break
86
+ Take away the elements in order of apparent non-importance
87
+ Tape your mouth (given by Ritva Saarikko)
88
+ The inconsistency principle
89
+ The tape is now the music
90
+ Think of the radio
91
+ Tidy up
92
+ Trust in the you of now
93
+ Turn it upside down
94
+ Twist the spine
95
+ Use an old idea
96
+ Use an unacceptable colour
97
+ Use fewer notes
98
+ Use filters
99
+ Use 'unqualified' people
100
+ Water
101
+ What are you really thinking about just now? Incorporate
102
+ What is the reality of the situation?
103
+ What mistakes did you make last time?
104
+ What would your closest friend do?
105
+ What wouldn't you do?
106
+ Work at a different speed
107
+ You are an engineer
108
+ You can only make one dot at a time
109
+ You don't have to be ashamed of using your own ideas
110
+ Always first steps
111
+ Always give yourself credit for having more than personality (given by Arto Lindsay)
112
+ A very small object -Its centre
113
+ Be extravagant
114
+ Disciplined self-indulgence
115
+ Don't stress *on* thing more than another (sic)
116
+ Feed the recording back out of the medium
117
+ Go outside. Shut the door.
118
+ Idiot glee (?)
119
+ Imagine the piece as a set of disconnected events
120
+ In total darkness, or in a very large room, very quietly
121
+ Is the tuning intonation correct?
122
+ It is quite possible (after all)
123
+ Lost in useless territory
124
+ Lowest common denominator
125
+ Not building a wall but making a brick
126
+ Question the heroic approach
127
+ Revaluation (a warm feeling)
128
+ Simply a matter of work
129
+ State the problem in words as simply as possible
130
+ The most important thing is the thing most easily forgotten
131
+ Towards the insignificant
132
+ What are the sections sections of? Imagine a caterpillar moving
133
+ What are you really thinking about just now?
134
+ Assemble some of the elements in a group and treat the group
135
+ Be less critical more often
136
+ Children -speaking -singing
137
+ From nothing to more than nothing
138
+ Go to an extreme, move back to a more comfortable place
139
+ Intentions -nobility of -humility of -credibility of
140
+ Is the intonation correct?
141
+ Once the search is in progress, something will be found
142
+ Only a part, not the whole
143
+ Retrace your steps
144
+ State the problem in words as clearly as possible
145
+ Abandon desire
146
+ Abandon normal instructions
147
+ Adding on
148
+ Always the first steps
149
+ Be less critical
150
+ Change ambiguities to specifics
151
+ Change nothing and continue consistently
152
+ Change specifics to ambiguities
153
+ Consider transitions
154
+ Discover your formulas and abandon them
155
+ Display your talent
156
+ Distort time
157
+ Don't avoid what is easy
158
+ Do something sudden, destructive and unpredictable
159
+ Do the last thing first
160
+ Emphasize differences
161
+ Emphasize the flaws
162
+ Faced with a choice, do both (from Dieter Rot)
163
+ Find a safe part and use it as an anchor
164
+ Go to an extreme, come part way back
165
+ How would someone else do it?
166
+ Is something missing?
167
+ Is the style right?
168
+ It is simply a matter or work
169
+ Magnify the most difficult details
170
+ Make it more sensual
171
+ Make what's perfect more human
172
+ Move towards the unimportant
173
+ Not building a wall; making a brick
174
+ Once the search has begun, something will be found
175
+ Openly resist change
176
+ Pae White's non-blank graphic metacard
177
+ Question the heroic
178
+ Remember quiet evenings
179
+ Remove a restriction
180
+ Simple Subtraction
181
+ Slow preparation, fast execution
182
+ State the problem as clearly as possible
183
+ Take away the important parts
184
+ The most easily forgotten thing is the most important
185
+ Think - inside the work -outside the work
186
+ Try faking it (from Stewart Brand)
187
+ Use cliches
188
+ Use something nearby as a model
189
+ Use your own ideas
190
+ Voice your suspicions
191
+ What context would look right?
192
+ What is the simplest solution?
193
+ What to increase? What to reduce? What to maintain?
194
+ What were you really thinking about just now?
195
+ When is it for?
196
+ Where is the edge?
197
+ Which parts can be grouped?
198
+ Would anyone want it?
199
+ Your mistake was a hidden intention
File without changes
@@ -0,0 +1,63 @@
1
+ module MyMethods
2
+ def self.create_card(card_sample, max_width = 60)
3
+
4
+ if card_sample == "Pae White's non-blank graphic metacard"
5
+ card =
6
+ <<~HEREDOC
7
+ –––––––––––––––––––––––––––––––––––––––––––––––––––
8
+ | |
9
+ | |
10
+ | |
11
+ | |
12
+ | |
13
+ | |
14
+ –––––––––––––––––––––––––––––––––––––––––––––––––––
15
+ Pae White's non-blank graphic metacard
16
+ HEREDOC
17
+ else
18
+
19
+ # Split the card sample into words
20
+ words = card_sample.split(' ')
21
+ lines = []
22
+ current_line = ""
23
+
24
+ # Build lines based on max width
25
+ words.each do |word|
26
+ if (current_line + word).length <= max_width
27
+ current_line += "#{word} "
28
+ else
29
+ lines << current_line.strip
30
+ current_line = "#{word} "
31
+ end
32
+ end
33
+ lines << current_line.strip unless current_line.empty?
34
+
35
+ # Determine the width of the card based on the longest line
36
+ # Kinda unnecessary
37
+ #card_width = [max_width, lines.map(&:length).max].max
38
+ card_width = max_width
39
+
40
+ # Create the card with dynamic borders
41
+ border = "–" * (card_width + 4)
42
+ card = "#{border}\n"
43
+ card += "| #{' ' * card_width} |\n"
44
+
45
+ lines.each do |line|
46
+ # Calculate padding for centering
47
+ padding = (card_width - line.length) / 2
48
+ # Centered line with spaces on both sides
49
+ centered_line = ' ' * padding + line
50
+
51
+ # Add centered line to card
52
+ card += "| #{centered_line.ljust(card_width)} |\n"
53
+
54
+ # Add blank line after each text line
55
+ card += "| #{' ' * card_width} |\n"
56
+ end
57
+
58
+ card += border
59
+
60
+ card
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,44 @@
1
+ class ObliqueStrategies
2
+ class Error < StandardError; end
3
+
4
+ STRATEGY_DIR = File.join(File.absolute_path(__dir__), '..', 'decks')
5
+ USER_DECK = File.join(File.absolute_path(__dir__), '..', 'decks', 'user_deck.txt')
6
+
7
+ def initialize(path: STRATEGY_DIR)
8
+ @deck = load_decks
9
+ end
10
+
11
+ def load_decks
12
+ Dir.glob(File.join(STRATEGY_DIR, '*.txt')).flat_map do |file|
13
+ File.readlines(file).map(&:chomp).map(&:strip)
14
+ end
15
+ end
16
+
17
+ def info
18
+ puts "Total number of cards in the deck: #{load_decks.size}"
19
+ end
20
+
21
+ def add_a_card(path: USER_DECK)
22
+ puts "Add your card or press Ctrl+C if you reconsider."
23
+ prompt = gets.chomp
24
+ File.open(path, 'a') { |f| f << "#{prompt}\n" }
25
+ end
26
+
27
+ def card
28
+ @deck.sample
29
+ end
30
+
31
+ private
32
+
33
+ def self.add_a_card(path: USER_DECK)
34
+ new.add_a_card(path: path)
35
+ end
36
+
37
+ def self.card
38
+ new.card
39
+ end
40
+
41
+ def self.info
42
+ new.info
43
+ end
44
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ObsDeck
4
+ VERSION = "0.1.0"
5
+ end
data/lib/obs_deck.rb ADDED
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "obs_deck/version"
4
+
5
+ module ObsDeck
6
+ class Error < StandardError; end
7
+ require "tty-prompt"
8
+
9
+ require_relative 'obs_deck/modules/my_methods'
10
+ require_relative 'obs_deck/oblique_strategies'
11
+
12
+ def self.start_menu
13
+ prompt = TTY::Prompt.new
14
+ prompt.select("menu") do |menu|
15
+ menu.choice 'deck', -> { puts MyMethods.create_card(ObliqueStrategies.card) }
16
+ menu.choice 'add a card', -> { ObliqueStrategies.add_a_card }
17
+ menu.choice 'info', -> { ObliqueStrategies.info }
18
+ menu.choice 'exit', -> { exit }
19
+ end
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: obs_deck
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - audiosupp
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-10-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: tty-prompt
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.23.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.23.1
27
+ description: I wanted to create the Oblique Strategies gem myself because I'm learning,
28
+ and now I have created it.
29
+ email: leaveitblank@mail.com
30
+ executables:
31
+ - obs_deck
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - exe/obs_deck
36
+ - lib/decks/unique_phrases_deck.txt
37
+ - lib/decks/user_deck.txt
38
+ - lib/obs_deck.rb
39
+ - lib/obs_deck/modules/my_methods.rb
40
+ - lib/obs_deck/oblique_strategies.rb
41
+ - lib/obs_deck/version.rb
42
+ homepage: https://github.com/audiosupp/obs-deck/
43
+ licenses:
44
+ - MIT
45
+ metadata:
46
+ homepage_uri: https://github.com/audiosupp/obs-deck/
47
+ source_code_uri: https://github.com/audiosupp/obs-deck/
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 3.0.0
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubygems_version: 3.5.21
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Oblique Strategies in the Terminal CLI.
67
+ test_files: []